Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 308400 Details for
Bug 436837
Dynamically reload schema via task interface
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
cvs diffs (final)
schemareload.diffs (text/plain), 136.80 KB, created by
Noriko Hosoi
on 2008-06-04 22:10:17 UTC
(
hide
)
Description:
cvs diffs (final)
Filename:
MIME Type:
Creator:
Noriko Hosoi
Created:
2008-06-04 22:10:17 UTC
Size:
136.80 KB
patch
obsolete
>Index: ldap/servers/slapd/attrsyntax.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/attrsyntax.c,v >retrieving revision 1.6 >diff -t -w -U4 -r1.6 attrsyntax.c >--- ldap/servers/slapd/attrsyntax.c 4 Oct 2007 16:27:47 -0000 1.6 >+++ ldap/servers/slapd/attrsyntax.c 4 Jun 2008 22:02:13 -0000 >@@ -451,8 +451,9 @@ > > > if((asi=attr_syntax_get_by_name_locking_optional(s, PR_TRUE, PR_FALSE)) != NULL ) { > r = slapi_ch_strdup(asi->asi_name); >+ attr_syntax_return( asi ); > } > if ( NULL == asi ) { > r = attr_syntax_normalize_no_lookup( s ); > } >@@ -500,8 +501,9 @@ > ATTR_WITH_DIRSTRING_SYNTAX, PR_TRUE, PR_FALSE); > } > if ( NULL != asi ) { > plugin = asi->asi_plugin; >+ attr_syntax_return( asi ); > } > return( plugin ); > } > >@@ -889,8 +891,21 @@ > return ATTR_SYNTAX_ENUM_NEXT; > } > } > >+static int >+attr_syntax_force_to_delete(struct asyntaxinfo *asip, void *arg) >+{ >+ struct attr_syntax_enum_flaginfo *fi; >+ >+ PR_ASSERT( asip != NULL ); >+ fi = (struct attr_syntax_enum_flaginfo *)arg; >+ PR_ASSERT( fi != NULL ); >+ >+ attr_syntax_delete_no_lock( asip, PR_FALSE ); >+ return ATTR_SYNTAX_ENUM_REMOVE; >+} >+ > > /* > * Clear 'flag' within all attribute definitions. > */ >@@ -920,8 +935,21 @@ > attr_syntax_enumerate_attrs( attr_syntax_delete_if_not_flagged, > (void *)&fi, PR_TRUE ); > } > >+/* >+ * Delete all attribute definitions >+ */ >+void >+attr_syntax_delete_all() >+{ >+ struct attr_syntax_enum_flaginfo fi; >+ >+ memset( &fi, 0, sizeof(fi)); >+ attr_syntax_enumerate_attrs( attr_syntax_force_to_delete, >+ (void *)&fi, PR_TRUE ); >+} >+ > static int > attr_syntax_init(void) > { > if (!oid2asi) >Index: ldap/servers/slapd/backend.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/backend.c,v >retrieving revision 1.6 >diff -t -w -U4 -r1.6 backend.c >--- ldap/servers/slapd/backend.c 10 Nov 2006 23:45:40 -0000 1.6 >+++ ldap/servers/slapd/backend.c 4 Jun 2008 22:02:13 -0000 >@@ -114,8 +114,13 @@ > slapi_ch_free((void **)&be->be_backendconfig); > /* JCM char **be_include; ??? */ > slapi_ch_free((void **)&be->be_name); > PR_DestroyLock(be->be_state_lock); >+ if (be->be_lock != NULL) >+ { >+ PR_DestroyRWLock(be->be_lock); >+ be->be_lock = NULL; >+ } > } > > void > slapi_be_delete_onexit (Slapi_Backend *be) >@@ -160,8 +165,14 @@ > } > return r; > } > >+int >+be_isdeleted( const Slapi_Backend *be ) >+{ >+ return BE_STATE_DELETED == be->be_state; >+} >+ > void > be_addsuffix(Slapi_Backend *be,const Slapi_DN *suffix) > { > if (be->be_state != BE_STATE_DELETED) >Index: ldap/servers/slapd/backend_manager.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/backend_manager.c,v >retrieving revision 1.9 >diff -t -w -U4 -r1.9 backend_manager.c >--- ldap/servers/slapd/backend_manager.c 9 Apr 2007 23:02:41 -0000 1.9 >+++ ldap/servers/slapd/backend_manager.c 4 Jun 2008 22:02:13 -0000 >@@ -148,8 +148,17 @@ > /* All the other function pointers default to NULL */ > return be; > } > >+/* >+ * Rule: before coming to this point, slapi_be_Wlock(be) must be acquired. >+ */ >+void >+be_replace_dse_internal(Slapi_Backend *be, struct dse *pdse) >+{ >+ be->be_database->plg_private= (void*)pdse; >+} >+ > Slapi_Backend* > slapi_get_first_backend (char **cookie) > { > int i; >@@ -340,10 +349,9 @@ > slapi_pblock_set( &pb, SLAPI_PLUGIN, backends[i]->be_database ); > slapi_pblock_set( &pb, SLAPI_BACKEND, backends[i] ); > > (*backends[i]->be_cleanup)( &pb ); >- be_done(backends[i]); >- slapi_ch_free((void **)&backends[i]); >+ slapi_be_free(&backends[i]); > } > } > slapi_ch_free((void**)&backends); > } >Index: ldap/servers/slapd/dse.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/dse.c,v >retrieving revision 1.8 >diff -t -w -U4 -r1.8 dse.c >--- ldap/servers/slapd/dse.c 18 Oct 2007 00:08:34 -0000 1.8 >+++ ldap/servers/slapd/dse.c 4 Jun 2008 22:02:13 -0000 >@@ -209,18 +209,18 @@ > { > Slapi_Entry *e= NULL; > struct dse_node *n; > >- if (use_lock == DSE_USE_LOCK) >+ if (use_lock == DSE_USE_LOCK && pdse->dse_rwlock) > PR_RWLock_Rlock(pdse->dse_rwlock); > > n = dse_find_node( pdse, dn ); > if(n!=NULL) > { > e = slapi_entry_dup(n->entry); > } > >- if (use_lock == DSE_USE_LOCK) >+ if (use_lock == DSE_USE_LOCK && pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > > return e; > } >@@ -443,31 +443,44 @@ > /* > * Get rid of a dse structure. > */ > int >-dse_deletedse(Slapi_PBlock *pb) >-{ >- struct dse *pdse = NULL; >- >- slapi_pblock_get(pb, SLAPI_PLUGIN_PRIVATE, &pdse); >- >- if (pdse) >+dse_destroy(struct dse *pdse) > { > int nentries = 0; >+ if (pdse->dse_rwlock) > PR_RWLock_Wlock(pdse->dse_rwlock); > slapi_ch_free((void **)&(pdse->dse_filename)); > slapi_ch_free((void **)&(pdse->dse_tmpfile)); > slapi_ch_free((void **)&(pdse->dse_fileback)); > slapi_ch_free((void **)&(pdse->dse_filestartOK)); > dse_callback_deletelist(&pdse->dse_callback); >+ charray_free(pdse->dse_filelist); > nentries = avl_free(pdse->dse_tree, dse_internal_delete_entry); >+ if (pdse->dse_rwlock) { > PR_RWLock_Unlock(pdse->dse_rwlock); > PR_DestroyRWLock(pdse->dse_rwlock); >+ } > slapi_ch_free((void **)&pdse); > LDAPDebug( SLAPI_DSE_TRACELEVEL, "Removed [%d] entries from the dse tree.\n", > nentries,0,0 ); > } > >+/* >+ * Get rid of a dse structure. >+ */ >+int >+dse_deletedse(Slapi_PBlock *pb) >+{ >+ struct dse *pdse = NULL; >+ >+ slapi_pblock_get(pb, SLAPI_PLUGIN_PRIVATE, &pdse); >+ >+ if (pdse) >+ { >+ dse_destroy(pdse); >+ } >+ > /* data is freed, so make sure no one tries to use it */ > slapi_pblock_set(pb, SLAPI_PLUGIN_PRIVATE, NULL); > > return 0; >@@ -642,8 +655,11 @@ > int rc= 0; /* Fail */ > PRInt32 nr = 0; > PRFileInfo prfinfo; > PRFileDesc *prfd = 0; >+ int schema_flags = 0; >+ >+ slapi_pblock_get(pb, SLAPI_SCHEMA_FLAGS, &schema_flags); > > if ( (NULL != pdse) && (NULL != filename) ) > { > if ( (rc = PR_GetFileInfo( filename, &prfinfo )) != PR_SUCCESS ) >@@ -704,8 +720,10 @@ > { > int dont_check_dups = 0; > int str2entry_flags = SLAPI_STR2ENTRY_EXPAND_OBJECTCLASSES | > SLAPI_STR2ENTRY_NOT_WELL_FORMED_LDIF ; >+ if (schema_flags & DSE_SCHEMA_LOCKED) >+ str2entry_flags |= SLAPI_STR2ENTRY_NO_SCHEMA_LOCK; > > PR_ASSERT(pb); > slapi_pblock_get(pb, SLAPI_DSE_DONT_CHECK_DUPS, &dont_check_dups); > if ( !dont_check_dups ) { >@@ -891,8 +909,9 @@ > dse_check_for_readonly_error(Slapi_PBlock *pb, struct dse* pdse) > { > int rc = 0; /* default: no error */ > >+ if (pdse->dse_rwlock) > PR_RWLock_Rlock(pdse->dse_rwlock); > > if ( !pdse->dse_is_updateable ) { > if ( !pdse->dse_readonly_error_reported ) { >@@ -907,8 +926,9 @@ > } > rc = 1; /* return an error to the client */ > } > >+ if (pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > > if ( rc != 0 ) { > slapi_send_ldap_result( pb, LDAP_UNWILLING_TO_PERFORM, NULL, >@@ -1055,8 +1075,9 @@ > slapi_pblock_get(pb, SLAPI_DSE_DONT_WRITE_WHEN_ADDING, &dont_write_file); > slapi_pblock_get(pb, SLAPI_DSE_MERGE_WHEN_ADDING, &merge); > > /* keep write lock during both tree update and file write operations */ >+ if (pdse->dse_rwlock) > PR_RWLock_Wlock(pdse->dse_rwlock); > if (merge) > { > rc= avl_insert( &(pdse->dse_tree), n, entry_dn_cmp, dupentry_merge ); >@@ -1078,8 +1099,9 @@ > } > } else { /* duplicate entry ignored */ > dse_node_delete(&n); /* This also deletes the contained entry */ > } >+ if (pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > > if (rc == -1) > { >@@ -1253,9 +1275,9 @@ > int rc= -1; > if ( NULL != e ) > { > struct dse_node *n= dse_node_new(e); >- if (use_lock) >+ if (use_lock && pdse->dse_rwlock) > PR_RWLock_Wlock(pdse->dse_rwlock); > rc = avl_insert( &(pdse->dse_tree), n, entry_dn_cmp, dupentry_replace ); > if (write_file) > dse_write_file_nolock(pdse); >@@ -1264,9 +1286,9 @@ > if (DSE_ENTRY_WAS_REPLACED == rc) { > dse_node_delete(&n); > rc = 0; /* for return to caller */ > } >- if (use_lock) >+ if (use_lock && pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > } > return rc; > } >@@ -1365,8 +1387,9 @@ > > slapi_pblock_get(pb, SLAPI_DSE_DONT_WRITE_WHEN_ADDING, &dont_write_file); > > /* keep write lock for both tree deleting and file writing */ >+ if (pdse->dse_rwlock) > PR_RWLock_Wlock(pdse->dse_rwlock); > if ((deleted_node = (struct dse_node *)avl_delete(&pdse->dse_tree, > n, entry_dn_cmp))) > dse_node_delete(&deleted_node); >@@ -1378,8 +1401,9 @@ > dse_updateNumSubOfParent(pdse, slapi_entry_get_sdn_const(e), > SLAPI_OPERATION_DELETE); > dse_write_file_nolock(pdse); > } >+ if (pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > > return 1; > } >@@ -1554,10 +1578,12 @@ > * entries that change, we skip looking through the DSE entries. > */ > if ( pb->pb_op == NULL > || !operation_is_flag_set( pb->pb_op, OP_FLAG_PS_CHANGESONLY )) { >+ if (pdse->dse_rwlock) > PR_RWLock_Rlock(pdse->dse_rwlock); > dse_apply_nolock(pdse,dse_search_filter_entry,(caddr_t)&stuff); >+ if (pdse->dse_rwlock) > PR_RWLock_Unlock(pdse->dse_rwlock); > } > > if (stuff.ss) /* something was found which matched our criteria */ >Index: ldap/servers/slapd/entry.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/entry.c,v >retrieving revision 1.14 >diff -t -w -U4 -r1.14 entry.c >--- ldap/servers/slapd/entry.c 18 Oct 2007 00:08:34 -0000 1.14 >+++ ldap/servers/slapd/entry.c 4 Jun 2008 22:02:13 -0000 >@@ -1066,10 +1066,17 @@ > return e; /* e == NULL */ > > if ( flags & SLAPI_STR2ENTRY_EXPAND_OBJECTCLASSES ) > { >+ if ( flags & SLAPI_STR2ENTRY_NO_SCHEMA_LOCK ) >+ { >+ schema_expand_objectclasses_nolock( e ); >+ } >+ else >+ { > slapi_schema_expand_objectclasses( e ); > } >+ } > > if ( flags & SLAPI_STR2ENTRY_TOMBSTONE_CHECK ) > { > /* >Index: ldap/servers/slapd/mapping_tree.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/mapping_tree.c,v >retrieving revision 1.12 >diff -t -w -U4 -r1.12 mapping_tree.c >--- ldap/servers/slapd/mapping_tree.c 18 Oct 2007 00:08:34 -0000 1.12 >+++ ldap/servers/slapd/mapping_tree.c 4 Jun 2008 22:02:13 -0000 >@@ -1604,9 +1604,9 @@ > node= add_internal_mapping_tree_node("cn=config", be, mapping_tree_root); > mapping_tree_node_add_child(mapping_tree_root, node); > node= add_internal_mapping_tree_node("cn=monitor", be, mapping_tree_root); > mapping_tree_node_add_child(mapping_tree_root, node); >- be= slapi_be_select_by_instance_name( "schema-internal" ); >+ be= slapi_be_select_by_instance_name( DSE_SCHEMA ); > node= add_internal_mapping_tree_node("cn=schema", be, mapping_tree_root); > mapping_tree_node_add_child(mapping_tree_root, node); > > /* >@@ -2002,9 +2002,9 @@ > (op_type != SLAPI_OPERATION_SEARCH)) ) { > > mtn_unlock(); > *be = slapi_be_select_by_instance_name(DSE_BACKEND); >- if(*be != NULL) >+ if(*be != NULL && !be_isdeleted(*be)) > { > ret = LDAP_SUCCESS; > slapi_be_Rlock(*be); /* also done inside mtn_get_be() below */ > } else { >@@ -2025,9 +2025,9 @@ > /* if a backend was returned, make sure that all non-search operations > * fail if the backend is read-only, > * or if the whole server is readonly AND backend is public (!private) > */ >- if ((ret == LDAP_SUCCESS) && *be && >+ if ((ret == LDAP_SUCCESS) && *be && !be_isdeleted(*be) && > ((*be)->be_readonly || > (slapi_config_get_readonly() && !slapi_be_private(*be)))) { > unsigned long op_type = operation_get_type(op); > >@@ -2100,9 +2100,9 @@ > if( sdn_is_nulldn(target_sdn) && ( op_type == SLAPI_OPERATION_SEARCH) > && (scope == LDAP_SCOPE_BASE) ) { > mtn_unlock(); > be = slapi_be_select_by_instance_name(DSE_BACKEND); >- if(be != NULL) >+ if(be != NULL && !be_isdeleted(be)) > { > be_list[0]=be; > be_list[1] = NULL; > ret_code = LDAP_SUCCESS; >@@ -2127,9 +2127,9 @@ > || ((node_list == mapping_tree_root) && node->mtn_private > && (scope != LDAP_SCOPE_BASE)) ) > && (!be || strncmp(be->be_name, "default", 8))) > { >- if (be) >+ if (be && !be_isdeleted(be)) > { > /* wrong backend or referall, ignore it */ > slapi_log_error(SLAPI_LOG_ARGS, NULL, > "mapping tree release backend : %s\n", >@@ -2138,9 +2138,9 @@ > } > } > else > { >- if (be) >+ if (be && !be_isdeleted(be)) > { > be_list[be_index++]=be; > } > >@@ -2284,9 +2284,9 @@ > slapi_entry_free(new_referral); > > if (ret != LDAP_SUCCESS) > { >- if (*be) >+ if (be && !be_isdeleted(be)) > { > slapi_be_Unlock(*be); > *be = NULL; > } >@@ -2520,9 +2520,9 @@ > } > } > > if (result == LDAP_SUCCESS) { >- if (*be) { >+ if (*be && !be_isdeleted(*be)) { > slapi_log_error(SLAPI_LOG_ARGS, NULL, > "mapping tree selected backend : %s\n", > slapi_be_get_name(*be)); > slapi_be_Rlock(*be); >@@ -2789,9 +2789,9 @@ > /* Check if the dn targets an internal reserved backends */ > int > slapi_on_internal_backends(const Slapi_DN *sdn) > { >- char *backend_names[] = {"frontend-internal", "schema-internal"}; >+ char *backend_names[] = {DSE_BACKEND, DSE_SCHEMA}; > int internal = 1; > int numOfInternalBackends = 2; > int count; > >Index: ldap/servers/slapd/pblock.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/pblock.c,v >retrieving revision 1.12 >diff -t -w -U4 -r1.12 pblock.c >--- ldap/servers/slapd/pblock.c 18 Oct 2007 20:49:01 -0000 1.12 >+++ ldap/servers/slapd/pblock.c 4 Jun 2008 22:02:13 -0000 >@@ -561,8 +561,11 @@ > break; > case SLAPI_PLUGIN_DB_WIRE_IMPORT_FN: > (*(IFP *)value) = pblock->pb_plugin->plg_wire_import; > break; >+ case SLAPI_PLUGIN_DB_ADD_SCHEMA_FN: >+ (*(IFP *)value) = pblock->pb_plugin->plg_add_schema; >+ break; > case SLAPI_PLUGIN_DB_SEQ_FN: > if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { > return( -1 ); > } >@@ -1582,11 +1585,11 @@ > case SLAPI_DSE_IS_PRIMARY_FILE: > (*(int *)value) = pblock->pb_dse_is_primary_file; > break; > >- /* used internally by schema code */ >- case SLAPI_SCHEMA_USER_DEFINED_ONLY: >- (*(int *)value) = pblock->pb_schema_user_defined_only; >+ /* used internally by schema code (schema.c) */ >+ case SLAPI_SCHEMA_FLAGS: >+ (*(int *)value) = pblock->pb_schema_flags; > break; > > case SLAPI_URP_NAMING_COLLISION_DN: > (*(char **)value) = pblock->pb_urp_naming_collision_dn; >@@ -1838,8 +1841,11 @@ > break; > case SLAPI_PLUGIN_DB_WIRE_IMPORT_FN: > pblock->pb_plugin->plg_wire_import = (IFP) value; > break; >+ case SLAPI_PLUGIN_DB_ADD_SCHEMA_FN: >+ pblock->pb_plugin->plg_add_schema = (IFP) value; >+ break; > case SLAPI_PLUGIN_DB_SEQ_FN: > if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { > return( -1 ); > } >@@ -2823,11 +2829,11 @@ > case SLAPI_DSE_IS_PRIMARY_FILE: > pblock->pb_dse_is_primary_file = *((int *)value); > break; > >- /* used internally by schema code only */ >- case SLAPI_SCHEMA_USER_DEFINED_ONLY: >- pblock->pb_schema_user_defined_only = *((int *)value); >+ /* used internally by schema code (schema.c) */ >+ case SLAPI_SCHEMA_FLAGS: >+ pblock->pb_schema_flags = *((int *)value); > break; > > case SLAPI_URP_NAMING_COLLISION_DN: > pblock->pb_urp_naming_collision_dn = (char *)value; >Index: ldap/servers/slapd/proto-slap.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/proto-slap.h,v >retrieving revision 1.32 >diff -t -w -U4 -r1.32 proto-slap.h >--- ldap/servers/slapd/proto-slap.h 3 Apr 2008 21:07:55 -0000 1.32 >+++ ldap/servers/slapd/proto-slap.h 4 Jun 2008 22:02:13 -0000 >@@ -116,8 +116,9 @@ > * by attr_syntax_get_by_oid() or attr_syntax_get_by_name(). > */ > void attr_syntax_return( struct asyntaxinfo *asi ); > void attr_syntax_return_locking_optional( struct asyntaxinfo *asi, PRBool use_lock ); >+void attr_syntax_delete_all(void); > > /* > * value.c > */ >@@ -191,8 +192,9 @@ > /* > * backend_manager.c > */ > Slapi_Backend *be_new_internal(struct dse *pdse, const char *type, const char *name); >+void be_replace_dse_internal(Slapi_Backend *be, struct dse *pdse); > int fedse_create_startOK(char *filename, char *startokfilename, const char *configdir); > void be_cleanupall(); > void be_flushall(); > int be_remove( Slapi_Backend *be ); >@@ -549,12 +551,14 @@ > #define DSE_OPERATION_READ 0x100 > #define DSE_OPERATION_WRITE 0x200 > > #define DSE_BACKEND "frontend-internal" >+#define DSE_SCHEMA "schema-internal" > > struct dse *dse_new( char *filename, char *tmpfilename, char *backfilename, char *startokfilename, const char *configdir); > struct dse *dse_new_with_filelist(char *filename, char *tmpfilename, char *backfilename, char *startokfilename, const char *configdir, char **filelist); > int dse_deletedse(Slapi_PBlock *pb); >+int dse_destroy(struct dse *pdse); > int dse_read_file(struct dse *pdse, Slapi_PBlock *pb); > int dse_bind( Slapi_PBlock *pb ); > int dse_unbind( Slapi_PBlock *pb ); > int dse_search(Slapi_PBlock *pb); >@@ -852,13 +856,21 @@ > /* Note: callers of g_set_global_schema_csn() must hold a write lock. */ > /* csn is consumed. */ > void g_set_global_schema_csn(CSN *csn); > void slapi_schema_expand_objectclasses( Slapi_Entry *e ); >+/* lock to protect both objectclass and schema_dse */ >+void slapi_load_schemafile_lock( void ); >+void slapi_load_schemafile_unlock( void ); >+/* API to validate the schema files */ >+int slapi_validate_schema_files(char *schemadir); >+/* API to reload the schema files */ >+int slapi_reload_schema_files(char *schemadir); > > /* > * schemaparse.c > */ > void normalize_oc( void ); >+void normalize_oc_nolock( void ); > /* Note: callers of oc_update_inheritance_nolock() must hold a write lock */ > void oc_update_inheritance_nolock( struct objclass *oc ); > > /* >Index: ldap/servers/slapd/schema.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/schema.c,v >retrieving revision 1.11 >diff -t -w -U4 -r1.11 schema.c >--- ldap/servers/slapd/schema.c 25 Sep 2007 19:43:50 -0000 1.11 >+++ ldap/servers/slapd/schema.c 4 Jun 2008 22:02:13 -0000 >@@ -110,9 +110,9 @@ > char *errorbuf, size_t errorbufsize ); > static int schema_replace_objectclasses ( Slapi_PBlock *pb, LDAPMod *mod, > char *errorbuf, size_t errorbufsize ); > static int read_oc_ldif ( const char *input, struct objclass **oc, >- char *errorbuf, size_t errorbufsize, int nolock, int is_user_defined, >+ char *errorbuf, size_t errorbufsize, PRUint32 flags, int is_user_defined, > int schema_ds4x_compat ); > static int schema_check_name(char *name, PRBool isAttribute, char *errorbuf, > size_t errorbufsize ); > static int schema_check_oid(const char *name, const char *oid, >@@ -121,10 +121,10 @@ > static int isExtensibleObjectclass(const char *objectclass); > static int strip_oc_options ( struct objclass *poc ); > static char *stripOption (char *attr); > static int read_at_ldif(const char *input, struct asyntaxinfo **asipp, >- char *errorbuf, size_t errorbufsize, int nolock, int is_user_defined, >- int schema_ds4x_compat, int is_remote); >+ char *errorbuf, size_t errorbufsize, PRUint32 flags, >+ int is_user_defined, int schema_ds4x_compat, int is_remote); > static char **parse_qdlist(const char *s, int *n, int strip_options); > static void free_qdlist(char **vals, int n); > static char **parse_qdescrs(const char *s, int *n); > static char **parse_qdstrings(const char *s, int *n); >@@ -455,8 +455,9 @@ > int is_extensible_object = 0; > int i, oc_count = 0; > int unknown_class = 0; > char errtext[ BUFSIZ ]; >+ PRUint32 schema_flags; > > /* smart referrals are not allowed in Directory Lite */ > if ( config_is_slapd_lite() ) { > if ( has_smart_referral(e) ) { >@@ -467,10 +468,12 @@ > /* > * say the schema checked out ok if we're not checking schema at > * all, or if this is a replication update. > */ >- if (pb != NULL) >+ if (pb != NULL) { > slapi_pblock_get(pb, SLAPI_IS_REPLICATED_OPERATION, &is_replicated_operation); >+ slapi_pblock_get(pb, SLAPI_SCHEMA_FLAGS, &schema_flags); >+ } > if ( schemacheck == 0 || is_replicated_operation ) { > return( 0 ); > } > >@@ -503,8 +506,9 @@ > > /* > * Need the read lock to create the oc array and while we use it. > */ >+ if (!(schema_flags & DSE_SCHEMA_LOCKED)) > oc_lock_read(); > > oc_count = 0; > for (i= slapi_attr_first_value(aoc,&v); i != -1; >@@ -622,8 +626,9 @@ > } > > out: > /* Done with the oc array so can release the lock */ >+ if (!(schema_flags & DSE_SCHEMA_LOCKED)) > oc_unlock(); > slapi_ch_free((void**)&oclist); > > return( ret ); >@@ -921,8 +926,21 @@ > > return rc; > } > >+static void >+oc_delete_all_nolock( void ) >+{ >+ struct objclass *oc, *pnext; >+ >+ oc = g_get_global_oc_nolock(); >+ for (pnext = oc->oc_next; oc; >+ oc = pnext, pnext = oc?oc->oc_next:NULL) { >+ oc_free( &oc ); >+ } >+ g_set_global_oc_nolock ( NULL ); >+} >+ > > /* > * Compare two objectclass definitions for equality. Return PR_TRUE if > * they are equivalent and PR_FALSE if not. >@@ -1410,8 +1428,9 @@ > struct sizedbuffer *psbSyntaxDescription = sizedbuffer_construct(BUFSIZ); > struct attr_enum_wrapper aew; > struct syntax_enum_wrapper sew; > int enquote_sup_oc = config_get_enquote_sup_oc(); >+ PRUint32 schema_flags = 0; > int user_defined_only = 0; > char **allowed, **required; > char *mr_desc, *mr_name, *oc_description; > int schema_ds4x_compat = config_get_ds4_compatible_schema(); >@@ -1419,9 +1438,10 @@ > > vals[0] = &val; > vals[1] = NULL; > >- slapi_pblock_get(pb, SLAPI_SCHEMA_USER_DEFINED_ONLY, (void*)&user_defined_only); >+ slapi_pblock_get(pb, SLAPI_SCHEMA_FLAGS, (void*)&schema_flags); >+ user_defined_only = (schema_flags & DSE_SCHEMA_USER_DEFINED_ONLY) ? 1 : 0; > > attrlist_delete (&pschema_info_e->e_attrs, "objectclasses"); > attrlist_delete (&pschema_info_e->e_attrs, "attributetypes"); > attrlist_delete (&pschema_info_e->e_attrs, "matchingRules"); >@@ -1907,13 +1927,13 @@ > */ > static int > refresh_user_defined_schema( Slapi_PBlock *pb, Slapi_Entry *pschema_info_e, Slapi_Entry *entryAfter, int *returncode, char *returntext, void *arg /* not used */ ) > { >- int user_defined_only = 1; > int rc; > Slapi_PBlock *mypbptr = pb; > Slapi_PBlock mypb; > const CSN *schema_csn; >+ PRUint32 schema_flags = DSE_SCHEMA_USER_DEFINED_ONLY; > > pblock_init(&mypb); > > slapi_entry_attr_delete( pschema_info_e, "objectclasses"); >@@ -1923,9 +1943,9 @@ > if (!mypbptr) { > mypbptr = &mypb; > } > >- slapi_pblock_set(mypbptr, SLAPI_SCHEMA_USER_DEFINED_ONLY, &user_defined_only); >+ slapi_pblock_set(mypbptr, SLAPI_SCHEMA_FLAGS, &schema_flags); > rc = read_schema_dse(mypbptr, pschema_info_e, NULL, returncode, returntext, NULL); > schema_csn = g_get_global_schema_csn(); > if (NULL != schema_csn) { > char csn_str[CSN_STRSIZE + 1]; >@@ -2196,9 +2216,9 @@ > /* struct sizedbuffer *psbAttrSyntax= sizedbuffer_construct(BUFSIZ); */ > int status = 0; > > for (i = 0; LDAP_SUCCESS == status && mod->mod_bvalues[i]; i++) { >- int nolock = 0; /* lock global resources during normal operation */ >+ PRUint32 nolock = 0; /* lock global resources during normal operation */ > attr_ldif = (char *) mod->mod_bvalues[i]->bv_val; > > status = read_at_ldif(attr_ldif, NULL, errorbuf, errorbufsize, > nolock, 1 /* user defined */, schema_ds4x_compat, 1); >@@ -2220,14 +2240,15 @@ > * Returns an LDAP error code (LDAP_SUCCESS if all goes well) > */ > static int > add_oc_internal(struct objclass *pnew_oc, char *errorbuf, size_t errorbufsize, >- int schema_ds4x_compat ) >+ int schema_ds4x_compat, PRUint32 flags ) > { > struct objclass *oldoc_by_name, *oldoc_by_oid, *psup_oc = NULL; > int redefined_oc = 0, rc=0; > asyntaxinfo *pasyntaxinfo = 0; > >+ if (!(flags & DSE_SCHEMA_LOCKED)) > oc_lock_write(); > > oldoc_by_name = oc_find_nolock (pnew_oc->oc_name); > oldoc_by_oid = oc_find_nolock (pnew_oc->oc_oid); >@@ -2295,15 +2316,16 @@ > attr_syntax_return( pasyntaxinfo ); > } > > /* check to see if the objectclass name is valid */ >- if (!rc && schema_check_name ( pnew_oc->oc_name, PR_FALSE, >- errorbuf, errorbufsize ) == 0 ) { >+ if (!rc && !(flags & DSE_SCHEMA_NO_CHECK) && >+ schema_check_name ( pnew_oc->oc_name, PR_FALSE, errorbuf, errorbufsize ) >+ == 0 ) { > rc = schema_ds4x_compat ? LDAP_OPERATIONS_ERROR : LDAP_INVALID_SYNTAX; > } > > /* check to see if the oid is valid */ >- if (!rc) >+ if (!rc && !(flags & DSE_SCHEMA_NO_CHECK)) > { > struct sizedbuffer *psbOcOid, *psbOcName; > > psbOcName = sizedbuffer_construct(strlen(pnew_oc->oc_name) + 1); >@@ -2319,9 +2341,10 @@ > sizedbuffer_destroy(psbOcOid); > } > > /* check to see if the oc's attributes are valid */ >- if (!rc && schema_check_oc_attrs ( pnew_oc, errorbuf, errorbufsize, >+ if (!rc && !(flags & DSE_SCHEMA_NO_CHECK) && >+ schema_check_oc_attrs ( pnew_oc, errorbuf, errorbufsize, > 0 /* don't strip options */ ) == 0 ) { > rc = schema_ds4x_compat ? LDAP_OPERATIONS_ERROR : LDAP_INVALID_SYNTAX; > } > /* insert new objectclass exactly where the old one one in the linked list*/ >@@ -2337,8 +2360,9 @@ > if (!rc && redefined_oc ) { > oc_update_inheritance_nolock( pnew_oc ); > } > >+ if (!(flags & DSE_SCHEMA_LOCKED)) > oc_unlock(); > return rc; > } > >@@ -2469,9 +2493,9 @@ > return rc; > } > > if ( LDAP_SUCCESS != (rc = add_oc_internal(pnew_oc, errorbuf, >- errorbufsize, schema_ds4x_compat))) { >+ errorbufsize, schema_ds4x_compat, 0/* no restriction */))) { > oc_free( &pnew_oc ); > return rc; > } > >@@ -2540,9 +2564,9 @@ > for ( i = 0; mod->mod_bvalues[i] != NULL; ++i ) { > struct objclass *addocp = NULL; > > if ( LDAP_SUCCESS != ( rc = read_oc_ldif( mod->mod_bvalues[i]->bv_val, >- &newocp, errorbuf, errorbufsize, 1 /* no locking */, >+ &newocp, errorbuf, errorbufsize, DSE_SCHEMA_NO_GLOCK, > 1 /* user defined */, 0 /* no DS 4.x compat issues */ ))) { > rc = LDAP_INVALID_SYNTAX; > goto clean_up_and_return; > } >@@ -2694,9 +2718,14 @@ > * input : value of objectclasses attribute to read > * oc : pointer write the objectclass to > * errorbuf : buffer to write any errors to > * is_user_defined : if non-zero, force objectclass to be user defined >- * nolock : if non-zero, assume oc_lock_*() has been called. >+ * schema_flags : Any or none of the following bits could be set >+ * DSE_SCHEMA_NO_CHECK -- schema won't be checked >+ * DSE_SCHEMA_NO_GLOCK -- don't lock global resources >+ * DSE_SCHEMA_LOCKED -- already locked with >+ * slapi_load_schemafile_lock; >+ * no further lock needed > * schema_ds4x_compat: if non-zero, act like Netscape DS 4.x > * > * Returns: an LDAP error code > * >@@ -2707,10 +2736,11 @@ > * be written to errorbuf > */ > static int > read_oc_ldif ( const char *input, struct objclass **oc, char *errorbuf, >- size_t errorbufsize, int nolock, int is_user_defined, >- int schema_ds4x_compat ) { >+ size_t errorbufsize, PRUint32 schema_flags, int is_user_defined, >+ int schema_ds4x_compat ) >+{ > int i, j, num_origins; > const char *pstart, *nextinput; > struct objclass *pnew_oc, *psup_oc; > char **RequiredAttrsArray, **AllowedAttrsArray; >@@ -2847,9 +2877,9 @@ > /* look for the optional OBSOLETE marker */ > flags |= get_flag_keyword( schema_obsolete_with_spaces, > OC_FLAG_OBSOLETE, &nextinput, keyword_strstr_fn ); > >- if (!nolock) { >+ if (!(schema_flags & DSE_SCHEMA_NO_GLOCK)) { > oc_lock_read(); /* needed because we access the superior oc */ > } > > if ( schema_ds4x_compat ) nextinput = input; >@@ -3004,9 +3034,9 @@ > OrigRequiredAttrsArray = charray_dup ( RequiredAttrsArray ); > OrigAllowedAttrsArray = charray_dup ( AllowedAttrsArray ); > } > >- if (!nolock) { >+ if (!(schema_flags & DSE_SCHEMA_NO_GLOCK)) { > oc_unlock(); /* we are done accessing superior oc (psup_oc) */ > } > > /* finally -- create new objclass structure */ >@@ -3107,19 +3137,24 @@ > /* > * if asipp is NULL, the attribute type is added to the global set of schema. > * if asipp is not NULL, the AT is not added but *asipp is set. > * >- * if nolock is true, locking of global resources is turned off; this saves >- * time during initialization since the server operates in single threaded >- * mode at that time. >+ * schema_flags: Any or none of the following bits could be set >+ * DSE_SCHEMA_NO_CHECK -- schema won't be checked >+ * DSE_SCHEMA_NO_GLOCK -- locking of global resources is turned off; >+ * this saves time during initialization since >+ * the server operates in single threaded mode >+ * at that time or in slapi_load_schemafile_lock. >+ * DSE_SCHEMA_LOCKED -- already locked with slapi_load_schemafile_lock; >+ * no further lock needed > * > * if is_user_defined is true, force attribute type to be user defined. > * > * returns an LDAP error code (LDAP_SUCCESS if all goes well) > */ > static int > read_at_ldif(const char *input, struct asyntaxinfo **asipp, char *errorbuf, >- size_t errorbufsize, int nolock, int is_user_defined, >+ size_t errorbufsize, PRUint32 schema_flags, int is_user_defined, > int schema_ds4x_compat, int is_remote) > { > char *pStart, *pEnd; > char *pOid, *pSyntax, *pSuperior, *pMREquality, *pMROrdering, *pMRSubstring; >@@ -3190,9 +3225,9 @@ > keyword_strstr_fn = PL_strstr; > invalid_syntax_error = LDAP_INVALID_SYNTAX; > } > >- if (nolock) >+ if (schema_flags & DSE_SCHEMA_NO_GLOCK) > flags |= SLAPI_ATTR_FLAG_NOLOCKING; > > psbAttrName->buffer[0] = '\0'; > psbAttrDesc->buffer[0] = '\0'; >@@ -3379,8 +3414,9 @@ > schema_errprefix_at, first_attr_name, > "Missing parent attribute syntax OID"); > status = invalid_syntax_error; > } >+ attr_syntax_return( asi_parent ); > } > } > /* > if we are remote (via modify_schema_dse) then check sup dependencies. Locally >@@ -3417,8 +3453,9 @@ > > if (!status) { > struct objclass *poc; > /* check to make sure that the OID isn't being used by an objectclass */ >+ if (!(schema_flags & DSE_SCHEMA_LOCKED)) > oc_lock_read(); > poc = oc_find_oid_nolock( pOid ); > if ( poc != NULL) { > schema_create_errormsg( errorbuf, errorbufsize, >@@ -3426,8 +3463,9 @@ > "The OID \"%s\" is also used by the object class \"%s\"", > pOid, poc->oc_name); > status = LDAP_TYPE_OR_VALUE_EXISTS; > } >+ if (!(schema_flags & DSE_SCHEMA_LOCKED)) > oc_unlock(); > } > > if (!status && !element_is_user_defined( attr_origins )) { >@@ -3440,9 +3478,9 @@ > flags |= SLAPI_ATTR_FLAG_STD_ATTR; > } > } > >- if (!status) { >+ if (!(schema_flags & DSE_SCHEMA_NO_CHECK) && !status) { > int ii; > /* check to see if the attribute name is valid */ > for (ii = 0; !status && (ii < num_names); ++ii) { > if ( schema_check_name(attr_names[ii], PR_TRUE, errorbuf, >@@ -3458,9 +3496,9 @@ > } > } > } > >- if (!status) { >+ if (!(schema_flags & DSE_SCHEMA_NO_CHECK) && !status) { > if ( schema_check_oid ( first_attr_name, pOid, PR_TRUE, errorbuf, > errorbufsize ) == 0 ) { > status = invalid_syntax_error; > } >@@ -3919,11 +3957,13 @@ > load_schema_dse(Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Entry *ignored, > int *returncode, char *returntext, void *arg) > { > Slapi_Attr *attr = 0; >- int nolock = 1; /* don't lock global resources during initialization */ > int primary_file = 0; /* this is the primary (writeable) schema file */ > int schema_ds4x_compat = config_get_ds4_compatible_schema(); >+ PRUint32 flags = *(PRUint32 *)arg; >+ flags |= DSE_SCHEMA_NO_GLOCK; /* don't lock global resources >+ during initialization */ > > *returncode = 0; > > /* >@@ -3944,14 +3984,27 @@ > { > const char *s = slapi_value_get_string(v); > if (!s) > continue; >+ if (flags & DSE_SCHEMA_NO_LOAD) >+ { >+ struct asyntaxinfo *tmpasip = NULL; >+ if ((*returncode = read_at_ldif(s, &tmpasip, returntext, >+ SLAPI_DSE_RETURNTEXT_SIZE, flags, >+ primary_file /* force user defined? */, >+ schema_ds4x_compat, 0)) != 0) >+ break; >+ attr_syntax_free( tmpasip ); /* trash it */ >+ } >+ else >+ { > if ((*returncode = read_at_ldif(s, NULL, returntext, >- SLAPI_DSE_RETURNTEXT_SIZE, nolock, >+ SLAPI_DSE_RETURNTEXT_SIZE, flags, > primary_file /* force user defined? */, > schema_ds4x_compat, 0)) != 0) > break; > } >+ } > slapi_entry_attr_delete(e, "attributetypes"); > } > > if (*returncode) >@@ -3970,24 +4023,35 @@ > const char *s = slapi_value_get_string(v); > if (!s) > continue; > if ( LDAP_SUCCESS != (*returncode = read_oc_ldif(s, &oc, returntext, >- SLAPI_DSE_RETURNTEXT_SIZE, nolock, >+ SLAPI_DSE_RETURNTEXT_SIZE, flags, > primary_file /* force user defined? */, > schema_ds4x_compat))) { > break; > } >- if ( LDAP_SUCCESS != (*returncode = add_oc_internal(oc, returntext, >- SLAPI_DSE_RETURNTEXT_SIZE, schema_ds4x_compat))) { >+ if (flags & DSE_SCHEMA_NO_LOAD) >+ { >+ /* we don't load the objectclase; free it */ >+ oc_free( &oc ); >+ } >+ else >+ { >+ if ( LDAP_SUCCESS != >+ (*returncode = add_oc_internal(oc, returntext, >+ SLAPI_DSE_RETURNTEXT_SIZE, schema_ds4x_compat, >+ flags))) { > oc_free( &oc ); > break; > } > } >+ } > slapi_entry_attr_delete(e, "objectclasses"); > } > > /* Set the schema CSN */ >- if (!slapi_entry_attr_find(e, "nsschemacsn", &attr) && attr) >+ if (!(flags & DSE_SCHEMA_NO_LOAD) && >+ !slapi_entry_attr_find(e, "nsschemacsn", &attr) && attr) > { > Slapi_Value *v = NULL; > slapi_attr_first_value(attr, &v); > if (NULL != v) { >@@ -4009,32 +4073,53 @@ > * file doesn't exist, we try to create it and put a minimal > * schema entry into it. > * > * Returns 1 for OK, 0 for Fail. >+ * >+ * schema_flags: >+ * DSE_SCHEMA_NO_LOAD -- schema won't get loaded >+ * DSE_SCHEMA_NO_CHECK -- schema won't be checked >+ * DSE_SCHEMA_NO_BACKEND -- don't add as backend >+ * DSE_SCHEMA_LOCKED -- already locked; no further lock needed >+ > */ >-int >-init_schema_dse(const char *configdir) >+static int >+init_schema_dse_ext(char *schemadir, Slapi_Backend *be, >+ struct dse **local_pschemadse, PRUint32 schema_flags) > { > int rc= 1; /* OK */ >- char *schemadir = 0; > char *userschemafile = 0; > char *userschematmpfile = 0; > char **filelist = 0; >+ char *myschemadir = NULL; > Slapi_DN schema; > >+ if (NULL == local_pschemadse) >+ { >+ return 0; /* cannot proceed; return failure */ >+ } >+ > slapi_sdn_init_dn_byref(&schema,"cn=schema"); > >- schemadir = config_get_schemadir(); >- if (NULL == schemadir) { >- /* schemadir info is not configured, let's use the default place */ >- schemadir = slapi_ch_smprintf("%s/%s", configdir, SCHEMA_SUBDIR_NAME); >+ /* get schemadir if not given */ >+ if (NULL == schemadir) >+ { >+ myschemadir = config_get_schemadir(); >+ if (NULL == myschemadir) >+ { >+ return 0; /* cannot proceed; return failure */ >+ } >+ } >+ else >+ { >+ myschemadir = schemadir; > } > >- filelist = get_priority_filelist(schemadir, ".*ldif$"); >+ filelist = get_priority_filelist(myschemadir, ".*ldif$"); > if (!filelist || !*filelist) > { > slapi_log_error(SLAPI_LOG_FATAL, "schema", >- "No schema files were found in the directory %s\n", schemadir); >+ "No schema files were found in the directory %s\n", myschemadir); > free_filelist(filelist); > rc = 0; > } > else >@@ -4045,20 +4130,25 @@ > userschemafile = filelist[ii-1]; > userschematmpfile = slapi_ch_smprintf("%s.tmp", userschemafile); > } > >- if(rc && (pschemadse==NULL)) >+ if(rc) > { >- pschemadse= dse_new_with_filelist(userschemafile,userschematmpfile, NULL, NULL, >- schemadir,filelist); >- PR_ASSERT(pschemadse); >- if ((rc= (pschemadse!=NULL)) != 0) >- dse_register_callback(pschemadse,DSE_OPERATION_READ,DSE_FLAG_PREOP,&schema, >+ *local_pschemadse = dse_new_with_filelist(userschemafile, >+ userschematmpfile, NULL, NULL, myschemadir, filelist); >+ } >+ PR_ASSERT(*local_pschemadse); >+ if ((rc = (*local_pschemadse != NULL)) != 0) >+ { >+ /* pass schema_flags as arguments */ >+ dse_register_callback(*local_pschemadse, >+ DSE_OPERATION_READ, DSE_FLAG_PREOP, &schema, > LDAP_SCOPE_BASE,NULL, >- load_schema_dse,NULL); >- slapi_ch_free((void**)&userschematmpfile); >+ load_schema_dse, (void *)&schema_flags); > } >- slapi_ch_free((void**)&schemadir); >+ slapi_ch_free_string(&userschematmpfile); >+ if (NULL == schemadir) >+ slapi_ch_free_string(&myschemadir); /* allocated in this function */ > > if(rc) > { > char errorbuf[SLAPI_DSE_RETURNTEXT_SIZE] = {0}; >@@ -4072,56 +4162,102 @@ > /* duplicate entries are allowed */ > slapi_pblock_set(&pb, SLAPI_DSE_MERGE_WHEN_ADDING, (void*)&merge); > /* use the non duplicate checking str2entry */ > slapi_pblock_set(&pb, SLAPI_DSE_DONT_CHECK_DUPS, (void*)&dont_dup_check); >+ /* borrow the task flag space */ >+ slapi_pblock_set(&pb, SLAPI_SCHEMA_FLAGS, (void*)&schema_flags); > > /* add the objectclass attribute so we can do some basic schema > checking during initialization; this will be overridden when > its "real" definition is read from the schema conf files */ >+ if (schema_flags & DSE_SCHEMA_NO_LOAD) >+ { >+ struct asyntaxinfo *tmpasip = NULL; >+ rc = read_at_ldif("attributeTypes: ( 2.5.4.0 NAME 'objectClass' " >+ "DESC 'Standard schema for LDAP' SYNTAX " >+ "1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2252' )", >+ &tmpasip, errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, >+ DSE_SCHEMA_NO_GLOCK|schema_flags, 0, 0, 0); >+ attr_syntax_free( tmpasip ); /* trash it */ >+ } >+ else >+ { > rc = read_at_ldif("attributeTypes: ( 2.5.4.0 NAME 'objectClass' " > "DESC 'Standard schema for LDAP' SYNTAX " > "1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'RFC 2252' )", >- NULL, errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, 1, 0, 0, 0); >+ NULL, errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, >+ DSE_SCHEMA_NO_GLOCK|schema_flags, 0, 0, 0); >+ } > if (rc) > { > slapi_log_error(SLAPI_LOG_FATAL, "schema", "Could not add" > " attribute type \"objectClass\" to the schema: %s\n", > errorbuf); > } > >- rc = dse_read_file(pschemadse, &pb); >+ rc = dse_read_file(*local_pschemadse, &pb); > } > >- if (rc) >+ if (rc && !(schema_flags & DSE_SCHEMA_NO_BACKEND)) > { > /* make sure the schema is normalized */ >+ if (schema_flags & DSE_SCHEMA_LOCKED) >+ normalize_oc_nolock(); >+ else > normalize_oc(); > > /* register callbacks */ >- dse_register_callback(pschemadse,SLAPI_OPERATION_SEARCH,DSE_FLAG_PREOP,&schema, >- LDAP_SCOPE_BASE,NULL,read_schema_dse,NULL); >- dse_register_callback(pschemadse,SLAPI_OPERATION_MODIFY,DSE_FLAG_PREOP,&schema, >- LDAP_SCOPE_BASE,NULL,modify_schema_dse,NULL); >- dse_register_callback(pschemadse,SLAPI_OPERATION_DELETE,DSE_FLAG_PREOP,&schema, >- LDAP_SCOPE_BASE,NULL,dont_allow_that,NULL); >- dse_register_callback(pschemadse,DSE_OPERATION_WRITE,DSE_FLAG_PREOP,&schema, >- LDAP_SCOPE_BASE,NULL,refresh_user_defined_schema, >- NULL); >+ dse_register_callback(*local_pschemadse, SLAPI_OPERATION_SEARCH, >+ DSE_FLAG_PREOP,&schema, LDAP_SCOPE_BASE, >+ NULL, read_schema_dse, NULL); >+ dse_register_callback(*local_pschemadse, SLAPI_OPERATION_MODIFY, >+ DSE_FLAG_PREOP,&schema, LDAP_SCOPE_BASE, >+ NULL, modify_schema_dse, NULL); >+ dse_register_callback(*local_pschemadse, SLAPI_OPERATION_DELETE, >+ DSE_FLAG_PREOP, &schema, LDAP_SCOPE_BASE, >+ NULL,dont_allow_that,NULL); >+ dse_register_callback(*local_pschemadse, DSE_OPERATION_WRITE, >+ DSE_FLAG_PREOP, &schema, LDAP_SCOPE_BASE, >+ NULL, refresh_user_defined_schema, NULL); > > if (rc) { >- Slapi_Backend *be; >- >+ if (NULL == be) { /* be is not given. select it */ >+ be = slapi_be_select_by_instance_name( DSE_SCHEMA ); >+ } >+ if (NULL == be) { /* first time */ > /* add as a backend */ >- be= be_new_internal(pschemadse,"DSE", "schema-internal"); /* JCM - should be a #define */ >+ be = be_new_internal(*local_pschemadse, "DSE", DSE_SCHEMA); > be_addsuffix(be,&schema); >+ } else { /* schema file reload */ >+ struct slapdplugin *backend_plugin = NULL; >+ be_replace_dse_internal(be, *local_pschemadse); >+ >+ /* ldbm has some internal attributes to be added */ >+ backend_plugin = plugin_get_by_name("ldbm database"); >+ if (backend_plugin) { >+ (backend_plugin->plg_add_schema)( NULL ); >+ } >+ } > } > } > > slapi_sdn_done(&schema); > return rc; > } > >- >+int >+init_schema_dse(const char *configdir) >+{ >+ char *schemadir = config_get_schemadir(); >+ int rc = 0; >+ if (NULL == schemadir) >+ { >+ schemadir = slapi_ch_smprintf("%s/%s", configdir, SCHEMA_SUBDIR_NAME); >+ } >+ rc = init_schema_dse_ext(schemadir, NULL, &pschemadse, 0); >+ slapi_ch_free_string(&schemadir); >+ return rc; >+} > > /* > * Look for `keyword' within `*inputp' and return the flag_value if found > * (zero if returned if not found). >@@ -4712,4 +4848,116 @@ > sa->a_present_values.va = va; > > oc_unlock(); > } >+ >+void >+schema_expand_objectclasses_nolock( Slapi_Entry *e ) >+{ >+ Slapi_Attr *sa; >+ Slapi_Value **va; >+ const char *dn = slapi_entry_get_dn_const( e ); >+ int i; >+ >+ if ( 0 != slapi_entry_attr_find( e, SLAPI_ATTR_OBJECTCLASS, &sa )) { >+ return; /* no OC values -- nothing to do */ >+ } >+ >+ va = attr_get_present_values( sa ); >+ >+ if ( va == NULL || va[0] == NULL ) { >+ return; /* no OC values -- nothing to do */ >+ } >+ >+ /* >+ * This loop relies on the fact that bv_expand_one_oc() >+ * always adds to the end >+ */ >+ for ( i = 0; va[i] != NULL; ++i ) { >+ if ( NULL != slapi_value_get_string(va[i]) ) { >+ va_expand_one_oc( dn, &va, slapi_value_get_string(va[i]) ); >+ } >+ } >+ >+ /* top must always be present */ >+ va_expand_one_oc( dn, &va, "top" ); >+ >+ /* >+ * Reset the present values in the set because we may have realloc'd it. >+ * Note that this is the counterpart to the attr_get_present_values() >+ * call we made above... nothing new has been allocated, but sa holds >+ * a pointer to the original (pre realloc) va. >+ */ >+ sa->a_present_values.va = va; >+} >+ >+/* lock to protect both objectclass and schema_dse */ >+static void >+slapi_load_schemafile_lock() >+{ >+ oc_lock_write(); >+ schema_dse_lock_write(); >+} >+ >+static void >+slapi_load_schemafile_unlock() >+{ >+ schema_dse_unlock(); >+ oc_unlock(); >+} >+ >+/* API to validate the schema files */ >+int >+slapi_validate_schema_files(char *schemadir) >+{ >+ struct dse *my_pschemadse = NULL; >+ int rc = init_schema_dse_ext(schemadir, NULL, &my_pschemadse, >+ DSE_SCHEMA_NO_LOAD | DSE_SCHEMA_NO_BACKEND); >+ dse_destroy(my_pschemadse); >+ if (rc) >+ return LDAP_SUCCESS; >+ else { >+ slapi_log_error( SLAPI_LOG_FATAL, "schema_reload", >+ "schema file validation failed\n" ); >+ return LDAP_OBJECT_CLASS_VIOLATION; >+ } >+} >+ >+/* >+ * API to reload the schema files. >+ * Rule: this function is called when slapi_validate_schema_files is passed. >+ * Schema checking is skipped in this function. >+ */ >+int >+slapi_reload_schema_files(char *schemadir) >+{ >+ int rc = LDAP_SUCCESS; >+ struct dse *my_pschemadse = NULL; >+ /* get be to lock */ >+ Slapi_Backend *be = slapi_be_select_by_instance_name( DSE_SCHEMA ); >+ >+ if (NULL == be) >+ { >+ slapi_log_error( SLAPI_LOG_FATAL, "schema_reload", >+ "schema file reload failed\n" ); >+ return LDAP_LOCAL_ERROR; >+ } >+ slapi_be_Wlock(be); /* be lock must be outer of schemafile lock */ >+ slapi_load_schemafile_lock(); >+ attr_syntax_delete_all(); >+ oc_delete_all_nolock(); >+ rc = init_schema_dse_ext(schemadir, be, &my_pschemadse, >+ DSE_SCHEMA_NO_CHECK | DSE_SCHEMA_LOCKED); >+ if (rc) { >+ dse_destroy(pschemadse); >+ pschemadse = my_pschemadse; >+ slapi_load_schemafile_unlock(); >+ slapi_be_Unlock(be); >+ return LDAP_SUCCESS; >+ } else { >+ slapi_load_schemafile_unlock(); >+ slapi_be_Unlock(be); >+ slapi_log_error( SLAPI_LOG_FATAL, "schema_reload", >+ "schema file reload failed\n" ); >+ return LDAP_LOCAL_ERROR; >+ } >+} >Index: ldap/servers/slapd/schemaparse.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/schemaparse.c,v >retrieving revision 1.5 >diff -t -w -U4 -r1.5 schemaparse.c >--- ldap/servers/slapd/schemaparse.c 10 Nov 2006 23:45:40 -0000 1.5 >+++ ldap/servers/slapd/schemaparse.c 4 Jun 2008 22:02:13 -0000 >@@ -253,8 +253,26 @@ > > oc_unlock(); > } > >+void >+normalize_oc_nolock( void ) >+{ >+ struct objclass *oc; >+ >+ for ( oc = g_get_global_oc_nolock(); oc != NULL; oc = oc->oc_next ) { >+ LDAPDebug (LDAP_DEBUG_PARSE, >+ "normalize_oc: normalizing '%s'\n", oc->oc_name, 0, 0); >+ /* required attributes */ >+ normalize_list( oc->oc_required ); >+ normalize_list( oc->oc_orig_required ); >+ >+ /* optional attributes */ >+ normalize_list( oc->oc_allowed ); >+ normalize_list( oc->oc_orig_allowed ); >+ } >+} >+ > /* > * oc_update_inheritance_nolock: > * If an objectclass is redefined, we need to make sure that any objectclasses > * which inherit from the redefined objectclass have their required and allowed >Index: ldap/servers/slapd/slap.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slap.h,v >retrieving revision 1.32 >diff -t -w -U4 -r1.32 slap.h >--- ldap/servers/slapd/slap.h 16 May 2008 16:46:49 -0000 1.32 >+++ ldap/servers/slapd/slap.h 4 Jun 2008 22:02:13 -0000 >@@ -775,8 +775,9 @@ > IFP plg_un_db_register_dn_callback; /* Register a function to call when a operation is applied to a given DN */ > IFP plg_un_db_register_oc_callback; /* Register a function to call when a operation is applied to a given ObjectClass */ > IFP plg_un_db_init_instance; /* initializes new db instance */ > IFP plg_un_db_wire_import; /* fast replica update */ >+ IFP plg_un_db_add_schema; /* add schema */ > IFP plg_un_db_verify; /* verify db files */ > } plg_un_db; > #define plg_bind plg_un.plg_un_db.plg_un_db_bind > #define plg_unbind plg_un.plg_un_db.plg_un_db_unbind >@@ -807,8 +808,9 @@ > #define plg_dbtest plg_un.plg_un_db.plg_un_db_dbtest > #define plg_rmdb plg_un.plg_un_db.plg_un_db_rmdb > #define plg_init_instance plg_un.plg_un_db.plg_un_db_init_instance > #define plg_wire_import plg_un.plg_un_db.plg_un_db_wire_import >+#define plg_add_schema plg_un.plg_un_db.plg_un_db_add_schema > > /* extended operation plugin structure */ > struct plg_un_protocol_extension { > char **plg_un_pe_exoids; /* exop oids */ >@@ -1413,9 +1415,11 @@ > more errors when adding dse entries; this can only be done > after the schema and syntax and matching rule plugins are > running */ > int pb_dse_is_primary_file; /* for read callbacks: non-zero for primary file */ >- int pb_schema_user_defined_only; /* return user defined schema only */ >+ int pb_schema_flags; /* schema flags */ >+ /* . check/load info (schema reload task) */ >+ /* . refresh user defined schema */ > > /* NEW in 5.0 for getting back the backend result in frontend */ > int pb_result_code; /* operation result code */ > char * pb_result_text; /* result text when available */ >Index: ldap/servers/slapd/slapi-plugin.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slapi-plugin.h,v >retrieving revision 1.21 >diff -t -w -U4 -r1.21 slapi-plugin.h >--- ldap/servers/slapd/slapi-plugin.h 30 May 2008 15:39:00 -0000 1.21 >+++ ldap/servers/slapd/slapi-plugin.h 4 Jun 2008 22:02:13 -0000 >@@ -216,8 +216,9 @@ > Well formed LDIF has no duplicate attribute values, already > has the RDN as an attribute of the entry, and has all values for a > given attribute type listed contiguously. */ > #define SLAPI_STR2ENTRY_NOT_WELL_FORMED_LDIF 128 >+#define SLAPI_STR2ENTRY_NO_SCHEMA_LOCK 256 > > char *slapi_entry2str_with_options( Slapi_Entry *e, int *len, int options ); > /* Options for slapi_entry2str_with_options() */ > #define SLAPI_DUMP_STATEINFO 1 /* replication state */ >@@ -1430,9 +1431,9 @@ > #define SLAPI_DSE_REAPPLY_MODS 287 > #define SLAPI_DSE_IS_PRIMARY_FILE 289 > > /* internal schema flags */ >-#define SLAPI_SCHEMA_USER_DEFINED_ONLY 285 >+#define SLAPI_SCHEMA_FLAGS 285 > > /* urp flags */ > #define SLAPI_URP_NAMING_COLLISION_DN 286 > #define SLAPI_URP_TOMBSTONE_UNIQUEID 288 >Index: ldap/servers/slapd/slapi-private.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slapi-private.h,v >retrieving revision 1.21 >diff -t -w -U4 -r1.21 slapi-private.h >--- ldap/servers/slapd/slapi-private.h 3 Apr 2008 16:52:46 -0000 1.21 >+++ ldap/servers/slapd/slapi-private.h 4 Jun 2008 22:02:13 -0000 >@@ -647,8 +647,10 @@ > }IndexConfig; > > void be_set_sizelimit(Slapi_Backend * be, int sizelimit); > void be_set_timelimit(Slapi_Backend * be, int timelimit); >+int be_isdeleted( const Slapi_Backend *be ); >+ > > /* used by mapping tree to delay sending of result code when several > * backend are parsed > */ >@@ -856,8 +858,9 @@ > #define SLAPI_PLUGIN_DB_INIT_INSTANCE_FN 231 > #define SLAPI_PLUGIN_DB_WIRE_IMPORT_FN 234 > #define SLAPI_PLUGIN_DB_UPGRADEDB_FN 235 > #define SLAPI_PLUGIN_DB_DBVERIFY_FN 236 >+#define SLAPI_PLUGIN_DB_ADD_SCHEMA_FN 237 > /* database plugin-specific parameters */ > #define SLAPI_PLUGIN_DB_NO_ACL 250 > #define SLAPI_PLUGIN_DB_RMDB_FN 280 > >@@ -1072,8 +1075,19 @@ > > int slapi_config_register_callback(int operation, int flags, const char *base, int scope, const char *filter, dseCallbackFn fn, void *fn_arg); > int slapi_config_remove_callback(int operation, int flags, const char *base, int scope, const char *filter, dseCallbackFn fn); > int config_is_slapd_lite( void ); >+void schema_expand_objectclasses_nolock( Slapi_Entry *e ); >+ >+#define DSE_SCHEMA_NO_LOAD 0x0001 /* schema won't get loaded */ >+#define DSE_SCHEMA_NO_CHECK 0x0002 /* schema won't be checked */ >+#define DSE_SCHEMA_NO_BACKEND 0x0004 /* don't add as backend */ >+ >+#define DSE_SCHEMA_NO_GLOCK 0x0010 /* don't lock global resources */ >+#define DSE_SCHEMA_LOCKED 0x0020 /* already locked with >+ * slapi_load_schemafile_lock; >+ * no further lock needed */ >+#define DSE_SCHEMA_USER_DEFINED_ONLY 0x0100 /* refresh user defined schema */ > > #define SLAPI_RTN_BIT_FETCH_EXISTING_DN_ENTRY 0 > #define SLAPI_RTN_BIT_FETCH_PARENT_ENTRY 1 > #define SLAPI_RTN_BIT_FETCH_NEWPARENT_ENTRY 2 >Index: ldap/ldif/template-dse.ldif.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/ldif/template-dse.ldif.in,v >retrieving revision 1.5 >diff -t -w -U4 -r1.5 template-dse.ldif.in >--- ldap/ldif/template-dse.ldif.in 18 Oct 2007 01:22:29 -0000 1.5 >+++ ldap/ldif/template-dse.ldif.in 4 Jun 2008 22:02:13 -0000 >@@ -199,8 +199,18 @@ > nsslapd-plugininitfunc: ces_init > nsslapd-plugintype: syntax > nsslapd-pluginenabled: on > >+dn: cn=Schema Reload,cn=plugins,cn=config >+objectclass: top >+objectclass: nsSlapdPlugin >+objectclass: extensibleObject >+cn: Schema Reload >+nsslapd-pluginpath: libschemareload-plugin >+nsslapd-plugininitfunc: schemareload_init >+nsslapd-plugintype: object >+nsslapd-pluginenabled: on >+ > dn: cn=Space Insensitive String Syntax,cn=plugins,cn=config > objectclass: top > objectclass: nsSlapdPlugin > objectclass: extensibleObject >Index: aclocal.m4 >=================================================================== >RCS file: /cvs/dirsec/ldapserver/aclocal.m4,v >retrieving revision 1.66 >diff -t -w -U4 -r1.66 aclocal.m4 >--- aclocal.m4 30 May 2008 15:38:59 -0000 1.66 >+++ aclocal.m4 4 Jun 2008 22:02:13 -0000 >@@ -1577,29 +1577,12 @@ > # Some rework will be needed to allow for fast_install > # before this can be enabled. > hardcode_into_libs=yes > >- # find out which ABI we are using >- libsuff= >- case "$host_cpu" in >- x86_64*|s390x*|powerpc64*) >- echo '[#]line __oline__ "configure"' > conftest.$ac_ext >- if AC_TRY_EVAL(ac_compile); then >- case `/usr/bin/file conftest.$ac_objext` in >- *64-bit*) >- libsuff=64 >- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" >- ;; >- esac >- fi >- rm -rf conftest* >- ;; >- esac >- > # Append ld.so.conf contents to the search path > if test -f /etc/ld.so.conf; then >- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" >+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the >@@ -4304,11 +4287,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$_LT_AC_TAGVAR(GCC, $1) > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -4440,13 +4420,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) >@@ -4456,9 +4436,9 @@ > postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -4536,9 +4516,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -6372,9 +6352,8 @@ > fi > done > done > done >-IFS=$as_save_IFS > lt_ac_max=0 > lt_ac_count=0 > # Add /usr/xpg4/bin/sed as it is typically found on Solaris > # along with /bin/sed that truncates output. >@@ -6405,9 +6384,8 @@ > done > done > ]) > SED=$lt_cv_path_SED >-AC_SUBST([SED]) > AC_MSG_RESULT([$SED]) > ]) > > # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. >Index: configure >=================================================================== >RCS file: /cvs/dirsec/ldapserver/configure,v >retrieving revision 1.83 >diff -t -w -U4 -r1.83 configure >--- configure 30 May 2008 15:38:59 -0000 1.83 >+++ configure 4 Jun 2008 22:02:14 -0000 >@@ -464,9 +464,9 @@ > # include <unistd.h> > #endif" > > ac_default_prefix=/opt/$PACKAGE_NAME >-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_autobind_TRUE enable_autobind_FALSE enable_bitwise_TRUE enable_bitwise_FALSE with_fhs_opt configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir infdir mibdir defaultuser defaultgroup instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir perlexec initconfigdir HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG PACKAGE_BASE_VERSION nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir sasl_path svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS' >+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_autobind_TRUE enable_autobind_FALSE enable_bitwise_TRUE enable_bitwise_FALSE with_fhs_opt configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir infdir mibdir defaultuser defaultgroup instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir perlexec initconfigdir HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG PACKAGE_BASE_VERSION nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir sasl_path svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS' > ac_subst_files='' > > # Initialize some variables set by options. > ac_init_help= >@@ -3837,9 +3837,8 @@ > fi > done > done > done >-IFS=$as_save_IFS > lt_ac_max=0 > lt_ac_count=0 > # Add /usr/xpg4/bin/sed as it is typically found on Solaris > # along with /bin/sed that truncates output. >@@ -3872,9 +3871,8 @@ > > fi > > SED=$lt_cv_path_SED >- > echo "$as_me:$LINENO: result: $SED" >&5 > echo "${ECHO_T}$SED" >&6 > > echo "$as_me:$LINENO: checking for egrep" >&5 >@@ -4313,9 +4311,9 @@ > rm -rf conftest* > ;; > *-*-irix6*) > # Find out which ABI we are using. >- echo '#line 4317 "configure"' > conftest.$ac_ext >+ echo '#line 4315 "configure"' > conftest.$ac_ext > if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 > (eval $ac_compile) 2>&5 > ac_status=$? > echo "$as_me:$LINENO: \$? = $ac_status" >&5 >@@ -5448,9 +5446,9 @@ > fi > > > # Provide some information about the compiler. >-echo "$as_me:5452:" \ >+echo "$as_me:5450:" \ > "checking for Fortran 77 compiler version" >&5 > ac_compiler=`set X $ac_compile; echo $2` > { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 > (eval $ac_compiler --version </dev/null >&5) 2>&5 >@@ -6511,13 +6509,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:6515: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6513: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:6519: \$? = $ac_status" >&5 >+ echo "$as_me:6517: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -6779,13 +6777,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:6783: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6781: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:6787: \$? = $ac_status" >&5 >+ echo "$as_me:6785: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -6883,13 +6881,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:6887: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6885: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:6891: \$? = $ac_status" >&5 >+ echo "$as_me:6889: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings >@@ -8348,33 +8346,12 @@ > # Some rework will be needed to allow for fast_install > # before this can be enabled. > hardcode_into_libs=yes > >- # find out which ABI we are using >- libsuff= >- case "$host_cpu" in >- x86_64*|s390x*|powerpc64*) >- echo '#line 8356 "configure"' > conftest.$ac_ext >- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 >- (eval $ac_compile) 2>&5 >- ac_status=$? >- echo "$as_me:$LINENO: \$? = $ac_status" >&5 >- (exit $ac_status); }; then >- case `/usr/bin/file conftest.$ac_objext` in >- *64-bit*) >- libsuff=64 >- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" >- ;; >- esac >- fi >- rm -rf conftest* >- ;; >- esac >- > # Append ld.so.conf contents to the search path > if test -f /etc/ld.so.conf; then >- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" >+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the >@@ -9249,9 +9226,9 @@ > else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF >-#line 9253 "configure" >+#line 9230 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > #include <dlfcn.h> >@@ -9349,9 +9326,9 @@ > else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF >-#line 9353 "configure" >+#line 9330 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > #include <dlfcn.h> >@@ -9680,11 +9657,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$GCC > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -9816,13 +9790,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_predep_objects > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_postdep_objects > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_predeps >@@ -9832,9 +9806,9 @@ > postdeps=$lt_postdeps > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_compiler_lib_search_path > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -9912,9 +9886,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$link_all_deplibs > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -11692,13 +11666,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:11696: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:11670: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:11700: \$? = $ac_status" >&5 >+ echo "$as_me:11674: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -11796,13 +11770,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:11800: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:11774: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:11804: \$? = $ac_status" >&5 >+ echo "$as_me:11778: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings >@@ -12328,33 +12302,12 @@ > # Some rework will be needed to allow for fast_install > # before this can be enabled. > hardcode_into_libs=yes > >- # find out which ABI we are using >- libsuff= >- case "$host_cpu" in >- x86_64*|s390x*|powerpc64*) >- echo '#line 12336 "configure"' > conftest.$ac_ext >- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 >- (eval $ac_compile) 2>&5 >- ac_status=$? >- echo "$as_me:$LINENO: \$? = $ac_status" >&5 >- (exit $ac_status); }; then >- case `/usr/bin/file conftest.$ac_objext` in >- *64-bit*) >- libsuff=64 >- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" >- ;; >- esac >- fi >- rm -rf conftest* >- ;; >- esac >- > # Append ld.so.conf contents to the search path > if test -f /etc/ld.so.conf; then >- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" >+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the >@@ -12736,11 +12689,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$GCC_CXX > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -12872,13 +12822,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_predep_objects_CXX > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_postdep_objects_CXX > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_predeps_CXX >@@ -12888,9 +12838,9 @@ > postdeps=$lt_postdeps_CXX > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -12968,9 +12918,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$link_all_deplibs_CXX > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -13390,13 +13340,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:13394: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:13344: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:13398: \$? = $ac_status" >&5 >+ echo "$as_me:13348: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -13494,13 +13444,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:13498: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:13448: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:13502: \$? = $ac_status" >&5 >+ echo "$as_me:13452: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings >@@ -14939,33 +14889,12 @@ > # Some rework will be needed to allow for fast_install > # before this can be enabled. > hardcode_into_libs=yes > >- # find out which ABI we are using >- libsuff= >- case "$host_cpu" in >- x86_64*|s390x*|powerpc64*) >- echo '#line 14947 "configure"' > conftest.$ac_ext >- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 >- (eval $ac_compile) 2>&5 >- ac_status=$? >- echo "$as_me:$LINENO: \$? = $ac_status" >&5 >- (exit $ac_status); }; then >- case `/usr/bin/file conftest.$ac_objext` in >- *64-bit*) >- libsuff=64 >- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" >- ;; >- esac >- fi >- rm -rf conftest* >- ;; >- esac >- > # Append ld.so.conf contents to the search path > if test -f /etc/ld.so.conf; then >- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" >+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the >@@ -15347,11 +15276,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$GCC_F77 > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -15483,13 +15409,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_predep_objects_F77 > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_postdep_objects_F77 > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_predeps_F77 >@@ -15499,9 +15425,9 @@ > postdeps=$lt_postdeps_F77 > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_compiler_lib_search_path_F77 > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -15579,9 +15505,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$link_all_deplibs_F77 > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -15721,13 +15647,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:15725: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:15651: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:15729: \$? = $ac_status" >&5 >+ echo "$as_me:15655: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -15989,13 +15915,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:15993: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:15919: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:15997: \$? = $ac_status" >&5 >+ echo "$as_me:15923: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp >@@ -16093,13 +16019,13 @@ > lt_compile=`echo "$ac_compile" | $SED \ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` >- (eval echo "\"\$as_me:16097: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:16023: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:16101: \$? = $ac_status" >&5 >+ echo "$as_me:16027: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings >@@ -17558,33 +17484,12 @@ > # Some rework will be needed to allow for fast_install > # before this can be enabled. > hardcode_into_libs=yes > >- # find out which ABI we are using >- libsuff= >- case "$host_cpu" in >- x86_64*|s390x*|powerpc64*) >- echo '#line 17566 "configure"' > conftest.$ac_ext >- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 >- (eval $ac_compile) 2>&5 >- ac_status=$? >- echo "$as_me:$LINENO: \$? = $ac_status" >&5 >- (exit $ac_status); }; then >- case `/usr/bin/file conftest.$ac_objext` in >- *64-bit*) >- libsuff=64 >- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" >- ;; >- esac >- fi >- rm -rf conftest* >- ;; >- esac >- > # Append ld.so.conf contents to the search path > if test -f /etc/ld.so.conf; then >- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" >+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` >+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the >@@ -17966,11 +17871,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$GCC_GCJ > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -18102,13 +18004,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_predep_objects_GCJ > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_postdep_objects_GCJ > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_predeps_GCJ >@@ -18118,9 +18020,9 @@ > postdeps=$lt_postdeps_GCJ > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -18198,9 +18100,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$link_all_deplibs_GCJ > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -18450,11 +18352,8 @@ > > # Is the compiler the GNU C compiler? > with_gcc=$GCC_RC > >-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` >-gcc_ver=\`gcc -dumpversion\` >- > # An ERE matcher. > EGREP=$lt_EGREP > > # The linker used to build libraries. >@@ -18586,13 +18485,13 @@ > striplib=$lt_striplib > > # Dependencies to place before the objects being linked to create a > # shared library. >-predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+predep_objects=$lt_predep_objects_RC > > # Dependencies to place after the objects being linked to create a > # shared library. >-postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+postdep_objects=$lt_postdep_objects_RC > > # Dependencies to place before the objects being linked to create a > # shared library. > predeps=$lt_predeps_RC >@@ -18602,9 +18501,9 @@ > postdeps=$lt_postdeps_RC > > # The library search path used internally by the compiler when linking > # a shared library. >-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+compiler_lib_search_path=$lt_compiler_lib_search_path_RC > > # Method to check whether dependent libraries are shared objects. > deplibs_check_method=$lt_deplibs_check_method > >@@ -18682,9 +18581,9 @@ > # Whether libtool must link a program against all its dependency libraries. > link_all_deplibs=$link_all_deplibs_RC > > # Compile-time system search path for libraries >-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` >+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec > > # Run-time system search path for libraries > sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec > >@@ -26103,9 +26002,8 @@ > s,@ac_ct_CC@,$ac_ct_CC,;t t > s,@CCDEPMODE@,$CCDEPMODE,;t t > s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t > s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t >-s,@SED@,$SED,;t t > s,@EGREP@,$EGREP,;t t > s,@LN_S@,$LN_S,;t t > s,@ECHO@,$ECHO,;t t > s,@AR@,$AR,;t t >Index: ltmain.sh >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ltmain.sh,v >retrieving revision 1.24 >diff -t -w -U4 -r1.24 ltmain.sh >--- ltmain.sh 19 Feb 2008 06:04:55 -0000 1.24 >+++ ltmain.sh 4 Jun 2008 22:02:14 -0000 >@@ -1,9 +1,9 @@ > # ltmain.sh - Provide generalized library-building support services. > # NOTE: Changing this file will not affect anything until you rerun configure. > # >-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, >-# 2007 Free Software Foundation, Inc. >+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 >+# Free Software Foundation, Inc. > # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 > # > # This program is free software; you can redistribute it and/or modify > # it under the terms of the GNU General Public License as published by >@@ -42,24 +42,16 @@ > EXIT_FAILURE=1 > > PROGRAM=ltmain.sh > PACKAGE=libtool >-VERSION=1.5.24 >-TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)" >+VERSION=1.5.22 >+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" > >-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). >-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then >- emulate sh >- NULLCMD=: >- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which >- # is contrary to our usage. Disable this feature. >- alias -g '${1+"$@"}'='"$@"' >+# See if we are running on zsh, and set the options which allow our >+# commands through without removal of \ escapes. >+if test -n "${ZSH_VERSION+set}" ; then > setopt NO_GLOB_SUBST >-else >- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac > fi >-BIN_SH=xpg4; export BIN_SH # for Tru64 >-DUALCASE=1; export DUALCASE # for MKS sh > > # Check that we have a working $echo. > if test "X$1" = X--no-reexec; then > # Discard the --no-reexec flag, and continue. >@@ -112,16 +104,14 @@ > # Only set LANG and LC_ALL to C if already set. > # These must not be set unconditionally because not all systems understand > # e.g. LANG=C (notably SCO). > # We save the old values to restore during execute mode. >-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES >-do >- eval "if test \"\${$lt_var+set}\" = set; then >- save_$lt_var=\$$lt_var >- $lt_var=C >- export $lt_var >- fi" >-done >+if test "${LC_ALL+set}" = set; then >+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL >+fi >+if test "${LANG+set}" = set; then >+ save_LANG="$LANG"; LANG=C; export LANG >+fi > > # Make sure IFS has a sensible default > lt_nl=' > ' >@@ -145,10 +135,8 @@ > duplicate_deps=no > preserve_args= > lo2o="s/\\.lo\$/.${objext}/" > o2lo="s/\\.${objext}\$/.lo/" >-extracted_archives= >-extracted_serial=0 > > ##################################### > # Shell function definitions: > # This seems to be the best place for them >@@ -207,15 +195,9 @@ > *ar\ archive*) # could be an import, or static > if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ > $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then > win32_nmres=`eval $NM -f posix -A $1 | \ >- $SED -n -e '1,100{ >- / I /{ >- s,.*,import, >- p >- q >- } >- }'` >+ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` > case $win32_nmres in > import*) win32_libid_type="x86 archive import";; > *) win32_libid_type="x86 archive static";; > esac >@@ -344,19 +326,9 @@ > [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; > *) my_xabs=`pwd`"/$my_xlib" ;; > esac > my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` >- my_xlib_u=$my_xlib >- while :; do >- case " $extracted_archives " in >- *" $my_xlib_u "*) >- extracted_serial=`expr $extracted_serial + 1` >- my_xlib_u=lt$extracted_serial-$my_xlib ;; >- *) break ;; >- esac >- done >- extracted_archives="$extracted_archives $my_xlib_u" >- my_xdir="$my_gentop/$my_xlib_u" >+ my_xdir="$my_gentop/$my_xlib" > > $show "${rm}r $my_xdir" > $run ${rm}r "$my_xdir" > $show "$mkdir $my_xdir" >@@ -481,14 +453,13 @@ > show_help=yes > ;; > > --version) >- echo "\ >-$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP >- >-Copyright (C) 2007 Free Software Foundation, Inc. >-This is free software; see the source for copying conditions. There is NO >-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." >+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" >+ $echo >+ $echo "Copyright (C) 2005 Free Software Foundation, Inc." >+ $echo "This is free software; see the source for copying conditions. There is NO" >+ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." > exit $? > ;; > > --config) >@@ -783,12 +754,11 @@ > *.ii) xform=ii ;; > *.class) xform=class ;; > *.cpp) xform=cpp ;; > *.cxx) xform=cxx ;; >- *.[fF][09]?) xform=[fF][09]. ;; >+ *.f90) xform=f90 ;; > *.for) xform=for ;; > *.java) xform=java ;; >- *.obj) xform=obj ;; > esac > > libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` > >@@ -1167,32 +1137,23 @@ > # We need to know -static, to get the right output filenames. > for arg > do > case $arg in >- -all-static | -static | -static-libtool-libs) >- case $arg in >- -all-static) >+ -all-static | -static) >+ if test "X$arg" = "X-all-static"; then > if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then > $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 > fi > if test -n "$link_static_flag"; then > dlopen_self=$dlopen_self_static > fi > prefer_static_libs=yes >- ;; >- -static) >+ else > if test -z "$pic_flag" && test -n "$link_static_flag"; then > dlopen_self=$dlopen_self_static > fi > prefer_static_libs=built >- ;; >- -static-libtool-libs) >- if test -z "$pic_flag" && test -n "$link_static_flag"; then >- dlopen_self=$dlopen_self_static > fi >- prefer_static_libs=yes >- ;; >- esac > build_libtool_libs=no > build_old_libs=yes > break > ;; >@@ -1638,9 +1599,9 @@ > prev=xcompiler > continue > ;; > >- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) >+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) > compiler_flags="$compiler_flags $arg" > compile_command="$compile_command $arg" > finalize_command="$finalize_command $arg" > continue >@@ -1658,13 +1619,12 @@ > # -q* pass through compiler args for the IBM compiler > # -m* pass through architecture-specific compiler args for GCC > # -m*, -t[45]*, -txscale* pass through architecture-specific > # compiler args for GCC >- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC >- # -F/path gives path to uninstalled frameworks, gcc on darwin >+ # -pg pass through profiling flag for GCC > # @file GCC response files >- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ >- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) >+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ >+ -t[45]*|-txscale*|@*) > > # Unknown arguments in both finalize_command and compile_command need > # to be aesthetically quoted because they are evaled later. > arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` >@@ -1690,11 +1650,11 @@ > ;; > > -no-install) > case $host in >- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) >+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) > # The PATH hackery in wrapper scripts is required on Windows >- # and Darwin in order for the loader to find any dlls it needs. >+ # in order for the loader to find any dlls it needs. > $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 > $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 > fast_install=no > ;; >@@ -1751,9 +1711,9 @@ > esac > continue > ;; > >- -static | -static-libtool-libs) >+ -static) > # The effects of -static are defined in a previous loop. > # We used to do the same as -all-static on platforms that > # didn't have a PIC flag, but the assumption that the effects > # would be equivalent was wrong. It would break on at least >@@ -2133,9 +2093,9 @@ > for deplib in $libs; do > lib= > found=no > case $deplib in >- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) >+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) > if test "$linkmode,$pass" = "prog,link"; then > compile_deplibs="$deplib $compile_deplibs" > finalize_deplibs="$deplib $finalize_deplibs" > else >@@ -2529,11 +2489,9 @@ > fi # $linkmode = prog... > > if test "$linkmode,$pass" = "prog,link"; then > if test -n "$library_names" && >- { { test "$prefer_static_libs" = no || >- test "$prefer_static_libs,$installed" = "built,yes"; } || >- test -z "$old_library"; }; then >+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then > # We need to hardcode the library path > if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then > # Make sure the rpath contains only unique directories. > case "$temp_rpath " in >@@ -3227,9 +3185,9 @@ > # a minor version. But, then there is irix > # which has an extra 1 added just for fun > # > case $version_type in >- darwin|linux|osf|windows|none) >+ darwin|linux|osf|windows) > current=`expr $number_major + $number_minor` > age="$number_minor" > revision="$number_revision" > ;; >@@ -3238,12 +3196,11 @@ > revision="$number_minor" > age="0" > ;; > irix|nonstopux) >- current=`expr $number_major + $number_minor` >+ current=`expr $number_major + $number_minor - 1` > age="$number_minor" > revision="$number_minor" >- lt_irix_increment=no > ;; > esac > ;; > no) >@@ -3300,10 +3257,9 @@ > major=.`expr $current - $age` > versuffix="$major.$age.$revision" > # Darwin ld doesn't like 0 for these options... > minor_current=`expr $current + 1` >- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" >- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" >+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" > ;; > > freebsd-aout) > major=".$current" >@@ -3315,13 +3271,10 @@ > versuffix=".$current"; > ;; > > irix | nonstopux) >- if test "X$lt_irix_increment" = "Xno"; then >- major=`expr $current - $age` >- else > major=`expr $current - $age + 1` >- fi >+ > case $version_type in > nonstopux) verstring_prefix=nonstopux ;; > *) verstring_prefix=sgi ;; > esac >@@ -3456,13 +3409,13 @@ > oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` > fi > > # Eliminate all temporary directories. >- #for path in $notinst_path; do >- # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` >- # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` >- # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` >- #done >+ for path in $notinst_path; do >+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` >+ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` >+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` >+ done > > if test -n "$xrpath"; then > # If the user specified any rpath flags, then add them. > temp_xrpath= >@@ -3561,14 +3514,15 @@ > cat > conftest.c <<EOF > int main() { return 0; } > EOF > $rm conftest >- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then >+ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs >+ if test "$?" -eq 0 ; then > ldd_output=`ldd conftest` > for i in $deplibs; do > name=`expr $i : '-l\(.*\)'` > # If $name is empty we are operating on a -L argument. >- if test "$name" != "" && test "$name" != "0"; then >+ if test "$name" != "" && test "$name" -ne "0"; then > if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then > case " $predeps $postdeps " in > *" $i "*) > newdeplibs="$newdeplibs $i" >@@ -3605,9 +3559,11 @@ > name=`expr $i : '-l\(.*\)'` > # If $name is empty we are operating on a -L argument. > if test "$name" != "" && test "$name" != "0"; then > $rm conftest >- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then >+ $LTCC $LTCFLAGS -o conftest conftest.c $i >+ # Did it work? >+ if test "$?" -eq 0 ; then > ldd_output=`ldd conftest` > if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then > case " $predeps $postdeps " in > *" $i "*) >@@ -3923,12 +3879,9 @@ > if test -n "$hardcode_libdir_separator" && > test -n "$hardcode_libdirs"; then > libdir="$hardcode_libdirs" > if test -n "$hardcode_libdir_flag_spec_ld"; then >- case $archive_cmds in >- *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; >- *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; >- esac >+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" > else > eval dep_rpath=\"$hardcode_libdir_flag_spec\" > fi > fi >@@ -4285,16 +4238,14 @@ > # the extraction. > reload_conv_objs= > gentop= > # reload_cmds runs $LD directly, so let us get rid of >- # -Wl from whole_archive_flag_spec and hope we can get by with >- # turning comma into space.. >+ # -Wl from whole_archive_flag_spec > wl= > > if test -n "$convenience"; then > if test -n "$whole_archive_flag_spec"; then >- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" >- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` >+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" > else > gentop="$output_objdir/${obj}x" > generated="$generated $gentop" > >@@ -4740,18 +4691,18 @@ > # Transform the symbol file into the correct name. > case $host in > *cygwin* | *mingw* ) > if test -f "$output_objdir/${outputname}.def" ; then >- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` >- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` >+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` >+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` > else >- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` >- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` >+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` >+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` > fi > ;; > * ) >- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` >- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` >+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` >+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` > ;; > esac > ;; > *) >@@ -4764,15 +4715,15 @@ > # lt_preloaded_symbols. The linker will fail if global_symbol_pipe > # really was required. > > # Nullify the symbol file. >- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` >- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` >+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` >+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` > fi > > if test "$need_relink" = no || test "$build_libtool_libs" != yes; then > # Replace the output file specification. >- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` >+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` > link_command="$compile_command$compile_rpath" > > # We have no uninstalled library dependencies, so finalize right now. > $show "$link_command" >@@ -4857,9 +4808,9 @@ > else > if test "$fast_install" != no; then > link_command="$finalize_var$compile_command$finalize_rpath" > if test "$fast_install" = yes; then >- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` >+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` > else > # fast_install is set to needless > relink_command= > fi >@@ -4894,9 +4845,9 @@ > relink_command="$var=\"$var_value\"; export $var; $relink_command" > fi > done > relink_command="(cd `pwd`; $relink_command)" >- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` >+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` > fi > > # Quote $echo for shipping. > if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then >@@ -5301,22 +5252,8 @@ > # metacharacters that are still active within double-quoted strings. > Xsed='${SED} -e 1s/^X//' > sed_quote_subst='$sed_quote_subst' > >-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). >-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then >- emulate sh >- NULLCMD=: >- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which >- # is contrary to our usage. Disable this feature. >- alias -g '\${1+\"\$@\"}'='\"\$@\"' >- setopt NO_GLOB_SUBST >-else >- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac >-fi >-BIN_SH=xpg4; export BIN_SH # for Tru64 >-DUALCASE=1; export DUALCASE # for MKS sh >- > # The HP-UX ksh and POSIX shell print the target directory to stdout > # if CDPATH is set. > (unset CDPATH) >/dev/null 2>&1 && unset CDPATH > >@@ -5457,9 +5394,9 @@ > " > ;; > esac > $echo >> $output "\ >- \$echo \"\$0: cannot exec \$program \$*\" >+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" > exit $EXIT_FAILURE > fi > else > # The program doesn't exist. >@@ -5643,9 +5580,9 @@ > fi > done > # Quote the link command for shipping. > relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" >- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` >+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` > if test "$hardcode_automatic" = yes ; then > relink_command= > fi > >@@ -5988,11 +5925,11 @@ > fi > > if test -n "$inst_prefix_dir"; then > # Stick the inst_prefix_dir data into the link command. >- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` >+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` > else >- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` >+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` > fi > > $echo "$modename: warning: relinking \`$file'" 1>&2 > $show "$relink_command" >@@ -6199,9 +6136,9 @@ > tmpdir=`func_mktempdir` > file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` > outputname="$tmpdir/$file" > # Replace the output file specification. >- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` >+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` > > $show "$relink_command" > if $run eval "$relink_command"; then : > else >@@ -6410,13 +6347,11 @@ > > if test -f "$dir/$objdir/$dlname"; then > dir="$dir/$objdir" > else >- if test ! -f "$dir/$dlname"; then > $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 > exit $EXIT_FAILURE > fi >- fi > ;; > > *.lo) > # Just add the directory containing the .lo file. >@@ -6477,14 +6412,14 @@ > eval "export $shlibpath_var" > fi > > # Restore saved environment variables >- for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES >- do >- eval "if test \"\${save_$lt_var+set}\" = set; then >- $lt_var=\$save_$lt_var; export $lt_var >- fi" >- done >+ if test "${save_LC_ALL+set}" = set; then >+ LC_ALL="$save_LC_ALL"; export LC_ALL >+ fi >+ if test "${save_LANG+set}" = set; then >+ LANG="$save_LANG"; export LANG >+ fi > > # Now prepare to actually exec the command. > exec_cmd="\$cmd$args" > else >@@ -6855,11 +6790,9 @@ > don't remove output files matching REGEX > -release RELEASE specify package release information > -rpath LIBDIR the created library will eventually be installed in LIBDIR > -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries >- -static do not do any dynamic linking of uninstalled libtool libraries >- -static-libtool-libs >- do not do any dynamic linking of libtool libraries >+ -static do not do any dynamic linking of libtool libraries > -version-info CURRENT[:REVISION[:AGE]] > specify library version info [each variable defaults to 0] > > All other options (arguments beginning with \`-') are ignored. >Index: Makefile.am >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.am,v >retrieving revision 1.67 >diff -t -w -U4 -r1.67 Makefile.am >--- Makefile.am 30 May 2008 15:38:59 -0000 1.67 >+++ Makefile.am 4 Jun 2008 22:02:14 -0000 >@@ -116,10 +116,11 @@ > libback-ldbm.la libchainingdb-plugin.la libcos-plugin.la libdes-plugin.la \ > libdistrib-plugin.la libhttp-client-plugin.la libcollation-plugin.la \ > libmemberof-plugin.la libpassthru-plugin.la libpresence-plugin.la \ > libpwdstorage-plugin.la libreferint-plugin.la libreplication-plugin.la \ >- libretrocl-plugin.la libroles-plugin.la libstatechange-plugin.la libsyntax-plugin.la \ >- libviews-plugin.la $(LIBPAM_PASSTHRU_PLUGIN) $(LIBDNA_PLUGIN) $(LIBBITWISE_PLUGIN) >+ libretrocl-plugin.la libroles-plugin.la libstatechange-plugin.la \ >+ libsyntax-plugin.la libviews-plugin.la libschemareload-plugin.la \ >+ $(LIBPAM_PASSTHRU_PLUGIN) $(LIBDNA_PLUGIN) $(LIBBITWISE_PLUGIN) > > nodist_property_DATA = ns-slapd.properties > > noinst_PROGRAMS = makstrdb >@@ -828,8 +829,16 @@ > libviews_plugin_la_CPPFLAGS = $(PLUGIN_CPPFLAGS) > libviews_plugin_la_LDFLAGS = -avoid-version > > #------------------------ >+# libschemareload-plugin >+#------------------------ >+libschemareload_plugin_la_SOURCES = ldap/servers/plugins/schema_reload/schema_reload.c >+ >+libschemareload_plugin_la_CPPFLAGS = $(PLUGIN_CPPFLAGS) >+libschemareload_plugin_la_LDFLAGS = -avoid-version >+ >+#------------------------ > # libdna-plugin > #------------------------ > libdna_plugin_la_SOURCES = ldap/servers/plugins/dna/dna.c > >Index: Makefile.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.in,v >retrieving revision 1.87 >diff -t -w -U4 -r1.87 Makefile.in >--- Makefile.in 30 May 2008 15:38:59 -0000 1.87 >+++ Makefile.in 4 Jun 2008 22:02:15 -0000 >@@ -425,8 +425,12 @@ > am_libroles_plugin_la_OBJECTS = \ > ldap/servers/plugins/roles/libroles_plugin_la-roles_cache.lo \ > ldap/servers/plugins/roles/libroles_plugin_la-roles_plugin.lo > libroles_plugin_la_OBJECTS = $(am_libroles_plugin_la_OBJECTS) >+libschemareload_plugin_la_LIBADD = >+am_libschemareload_plugin_la_OBJECTS = ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo >+libschemareload_plugin_la_OBJECTS = \ >+ $(am_libschemareload_plugin_la_OBJECTS) > libslapd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ > $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ > $(am__DEPENDENCIES_1) > am__objects_2 = ldap/libraries/libavl/libslapd_la-avl.lo >@@ -734,9 +738,10 @@ > $(libpwdstorage_plugin_la_SOURCES) \ > $(libreferint_plugin_la_SOURCES) \ > $(libreplication_plugin_la_SOURCES) \ > $(libretrocl_plugin_la_SOURCES) $(libroles_plugin_la_SOURCES) \ >- $(libslapd_la_SOURCES) $(libstatechange_plugin_la_SOURCES) \ >+ $(libschemareload_plugin_la_SOURCES) $(libslapd_la_SOURCES) \ >+ $(libstatechange_plugin_la_SOURCES) \ > $(libsyntax_plugin_la_SOURCES) $(libviews_plugin_la_SOURCES) \ > $(dbscan_bin_SOURCES) $(dsktune_bin_SOURCES) \ > $(infadd_bin_SOURCES) $(ldap_agent_bin_SOURCES) \ > $(ldclt_bin_SOURCES) $(ldif_bin_SOURCES) $(makstrdb_SOURCES) \ >@@ -759,9 +764,10 @@ > $(libpwdstorage_plugin_la_SOURCES) \ > $(libreferint_plugin_la_SOURCES) \ > $(libreplication_plugin_la_SOURCES) \ > $(libretrocl_plugin_la_SOURCES) $(libroles_plugin_la_SOURCES) \ >- $(libslapd_la_SOURCES) $(libstatechange_plugin_la_SOURCES) \ >+ $(libschemareload_plugin_la_SOURCES) $(libslapd_la_SOURCES) \ >+ $(libstatechange_plugin_la_SOURCES) \ > $(libsyntax_plugin_la_SOURCES) $(libviews_plugin_la_SOURCES) \ > $(dbscan_bin_SOURCES) $(dsktune_bin_SOURCES) \ > $(infadd_bin_SOURCES) $(ldap_agent_bin_SOURCES) \ > $(am__ldclt_bin_SOURCES_DIST) $(ldif_bin_SOURCES) \ >@@ -854,9 +860,8 @@ > PACKAGE_VERSION = @PACKAGE_VERSION@ > PATH_SEPARATOR = @PATH_SEPARATOR@ > PKG_CONFIG = @PKG_CONFIG@ > RANLIB = @RANLIB@ >-SED = @SED@ > SET_MAKE = @SET_MAKE@ > SHELL = @SHELL@ > SOLARIS_FALSE = @SOLARIS_FALSE@ > SOLARIS_TRUE = @SOLARIS_TRUE@ >@@ -1039,10 +1044,11 @@ > libback-ldbm.la libchainingdb-plugin.la libcos-plugin.la libdes-plugin.la \ > libdistrib-plugin.la libhttp-client-plugin.la libcollation-plugin.la \ > libmemberof-plugin.la libpassthru-plugin.la libpresence-plugin.la \ > libpwdstorage-plugin.la libreferint-plugin.la libreplication-plugin.la \ >- libretrocl-plugin.la libroles-plugin.la libstatechange-plugin.la libsyntax-plugin.la \ >- libviews-plugin.la $(LIBPAM_PASSTHRU_PLUGIN) $(LIBDNA_PLUGIN) $(LIBBITWISE_PLUGIN) >+ libretrocl-plugin.la libroles-plugin.la libstatechange-plugin.la \ >+ libsyntax-plugin.la libviews-plugin.la libschemareload-plugin.la \ >+ $(LIBPAM_PASSTHRU_PLUGIN) $(LIBDNA_PLUGIN) $(LIBBITWISE_PLUGIN) > > nodist_property_DATA = ns-slapd.properties > noinst_LIBRARIES = libavl.a libldaputil.a > >@@ -1731,8 +1737,15 @@ > libviews_plugin_la_CPPFLAGS = $(PLUGIN_CPPFLAGS) > libviews_plugin_la_LDFLAGS = -avoid-version > > #------------------------ >+# libschemareload-plugin >+#------------------------ >+libschemareload_plugin_la_SOURCES = ldap/servers/plugins/schema_reload/schema_reload.c >+libschemareload_plugin_la_CPPFLAGS = $(PLUGIN_CPPFLAGS) >+libschemareload_plugin_la_LDFLAGS = -avoid-version >+ >+#------------------------ > # libdna-plugin > #------------------------ > libdna_plugin_la_SOURCES = ldap/servers/plugins/dna/dna.c > libdna_plugin_la_CPPFLAGS = $(PLUGIN_CPPFLAGS) >@@ -3086,8 +3099,19 @@ > ldap/servers/plugins/roles/$(am__dirstamp) \ > ldap/servers/plugins/roles/$(DEPDIR)/$(am__dirstamp) > libroles-plugin.la: $(libroles_plugin_la_OBJECTS) $(libroles_plugin_la_DEPENDENCIES) > $(LINK) -rpath $(serverplugindir) $(libroles_plugin_la_LDFLAGS) $(libroles_plugin_la_OBJECTS) $(libroles_plugin_la_LIBADD) $(LIBS) >+ldap/servers/plugins/schema_reload/$(am__dirstamp): >+ @$(mkdir_p) ldap/servers/plugins/schema_reload >+ @: > ldap/servers/plugins/schema_reload/$(am__dirstamp) >+ldap/servers/plugins/schema_reload/$(DEPDIR)/$(am__dirstamp): >+ @$(mkdir_p) ldap/servers/plugins/schema_reload/$(DEPDIR) >+ @: > ldap/servers/plugins/schema_reload/$(DEPDIR)/$(am__dirstamp) >+ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo: \ >+ ldap/servers/plugins/schema_reload/$(am__dirstamp) \ >+ ldap/servers/plugins/schema_reload/$(DEPDIR)/$(am__dirstamp) >+libschemareload-plugin.la: $(libschemareload_plugin_la_OBJECTS) $(libschemareload_plugin_la_DEPENDENCIES) >+ $(LINK) -rpath $(serverplugindir) $(libschemareload_plugin_la_LDFLAGS) $(libschemareload_plugin_la_OBJECTS) $(libschemareload_plugin_la_LIBADD) $(LIBS) > ldap/servers/slapd/$(am__dirstamp): > @$(mkdir_p) ldap/servers/slapd > @: > ldap/servers/slapd/$(am__dirstamp) > ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp): >@@ -4127,8 +4151,10 @@ > -rm -f ldap/servers/plugins/roles/libroles_plugin_la-roles_cache.$(OBJEXT) > -rm -f ldap/servers/plugins/roles/libroles_plugin_la-roles_cache.lo > -rm -f ldap/servers/plugins/roles/libroles_plugin_la-roles_plugin.$(OBJEXT) > -rm -f ldap/servers/plugins/roles/libroles_plugin_la-roles_plugin.lo >+ -rm -f ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.$(OBJEXT) >+ -rm -f ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo > -rm -f ldap/servers/plugins/shared/libattr_unique_plugin_la-utils.$(OBJEXT) > -rm -f ldap/servers/plugins/shared/libattr_unique_plugin_la-utils.lo > -rm -f ldap/servers/plugins/statechange/libstatechange_plugin_la-statechange.$(OBJEXT) > -rm -f ldap/servers/plugins/statechange/libstatechange_plugin_la-statechange.lo >@@ -4781,8 +4807,9 @@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/rever/$(DEPDIR)/libdes_plugin_la-des.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/rever/$(DEPDIR)/libdes_plugin_la-rever.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/roles/$(DEPDIR)/libroles_plugin_la-roles_cache.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/roles/$(DEPDIR)/libroles_plugin_la-roles_plugin.Plo@am__quote@ >+@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/schema_reload/$(DEPDIR)/libschemareload_plugin_la-schema_reload.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/shared/$(DEPDIR)/libattr_unique_plugin_la-utils.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/statechange/$(DEPDIR)/libstatechange_plugin_la-statechange.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/syntaxes/$(DEPDIR)/libsyntax_plugin_la-bin.Plo@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/plugins/syntaxes/$(DEPDIR)/libsyntax_plugin_la-ces.Plo@am__quote@ >@@ -6718,8 +6745,15 @@ > @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/plugins/roles/roles_plugin.c' object='ldap/servers/plugins/roles/libroles_plugin_la-roles_plugin.lo' libtool=yes @AMDEPBACKSLASH@ > @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ > @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libroles_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/plugins/roles/libroles_plugin_la-roles_plugin.lo `test -f 'ldap/servers/plugins/roles/roles_plugin.c' || echo '$(srcdir)/'`ldap/servers/plugins/roles/roles_plugin.c > >+ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo: ldap/servers/plugins/schema_reload/schema_reload.c >+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libschemareload_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo -MD -MP -MF "ldap/servers/plugins/schema_reload/$(DEPDIR)/libschemareload_plugin_la-schema_reload.Tpo" -c -o ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo `test -f 'ldap/servers/plugins/schema_reload/schema_reload.c' || echo '$(srcdir)/'`ldap/servers/plugins/schema_reload/schema_reload.c; \ >+@am__fastdepCC_TRUE@ then mv -f "ldap/servers/plugins/schema_reload/$(DEPDIR)/libschemareload_plugin_la-schema_reload.Tpo" "ldap/servers/plugins/schema_reload/$(DEPDIR)/libschemareload_plugin_la-schema_reload.Plo"; else rm -f "ldap/servers/plugins/schema_reload/$(DEPDIR)/libschemareload_plugin_la-schema_reload.Tpo"; exit 1; fi >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/plugins/schema_reload/schema_reload.c' object='ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo' libtool=yes @AMDEPBACKSLASH@ >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ >+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libschemareload_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/plugins/schema_reload/libschemareload_plugin_la-schema_reload.lo `test -f 'ldap/servers/plugins/schema_reload/schema_reload.c' || echo '$(srcdir)/'`ldap/servers/plugins/schema_reload/schema_reload.c >+ > ldap/servers/slapd/libslapd_la-add.lo: ldap/servers/slapd/add.c > @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libslapd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/libslapd_la-add.lo -MD -MP -MF "ldap/servers/slapd/$(DEPDIR)/libslapd_la-add.Tpo" -c -o ldap/servers/slapd/libslapd_la-add.lo `test -f 'ldap/servers/slapd/add.c' || echo '$(srcdir)/'`ldap/servers/slapd/add.c; \ > @am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/$(DEPDIR)/libslapd_la-add.Tpo" "ldap/servers/slapd/$(DEPDIR)/libslapd_la-add.Plo"; else rm -f "ldap/servers/slapd/$(DEPDIR)/libslapd_la-add.Tpo"; exit 1; fi > @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/add.c' object='ldap/servers/slapd/libslapd_la-add.lo' libtool=yes @AMDEPBACKSLASH@ >@@ -8635,8 +8669,9 @@ > -rm -rf ldap/servers/plugins/replication/.libs ldap/servers/plugins/replication/_libs > -rm -rf ldap/servers/plugins/retrocl/.libs ldap/servers/plugins/retrocl/_libs > -rm -rf ldap/servers/plugins/rever/.libs ldap/servers/plugins/rever/_libs > -rm -rf ldap/servers/plugins/roles/.libs ldap/servers/plugins/roles/_libs >+ -rm -rf ldap/servers/plugins/schema_reload/.libs ldap/servers/plugins/schema_reload/_libs > -rm -rf ldap/servers/plugins/shared/.libs ldap/servers/plugins/shared/_libs > -rm -rf ldap/servers/plugins/statechange/.libs ldap/servers/plugins/statechange/_libs > -rm -rf ldap/servers/plugins/syntaxes/.libs ldap/servers/plugins/syntaxes/_libs > -rm -rf ldap/servers/plugins/uiduniq/.libs ldap/servers/plugins/uiduniq/_libs >@@ -9015,8 +9050,10 @@ > -rm -f ldap/servers/plugins/rever/$(DEPDIR)/$(am__dirstamp) > -rm -f ldap/servers/plugins/rever/$(am__dirstamp) > -rm -f ldap/servers/plugins/roles/$(DEPDIR)/$(am__dirstamp) > -rm -f ldap/servers/plugins/roles/$(am__dirstamp) >+ -rm -f ldap/servers/plugins/schema_reload/$(DEPDIR)/$(am__dirstamp) >+ -rm -f ldap/servers/plugins/schema_reload/$(am__dirstamp) > -rm -f ldap/servers/plugins/shared/$(DEPDIR)/$(am__dirstamp) > -rm -f ldap/servers/plugins/shared/$(am__dirstamp) > -rm -f ldap/servers/plugins/statechange/$(DEPDIR)/$(am__dirstamp) > -rm -f ldap/servers/plugins/statechange/$(am__dirstamp) >@@ -9063,9 +9100,9 @@ > mostlyclean-am > > distclean: distclean-am > -rm -f $(am__CONFIG_DISTCLEAN_FILES) >- -rm -rf ldap/libraries/libavl/$(DEPDIR) ldap/servers/plugins/acl/$(DEPDIR) ldap/servers/plugins/bitwise/$(DEPDIR) ldap/servers/plugins/chainingdb/$(DEPDIR) ldap/servers/plugins/collation/$(DEPDIR) ldap/servers/plugins/cos/$(DEPDIR) ldap/servers/plugins/distrib/$(DEPDIR) ldap/servers/plugins/dna/$(DEPDIR) ldap/servers/plugins/http/$(DEPDIR) ldap/servers/plugins/memberof/$(DEPDIR) ldap/servers/plugins/pam_passthru/$(DEPDIR) ldap/servers/plugins/passthru/$(DEPDIR) ldap/servers/plugins/presence/$(DEPDIR) ldap/servers/plugins/pwdstorage/$(DEPDIR) ldap/servers/plugins/referint/$(DEPDIR) ldap/servers/plugins/replication/$(DEPDIR) ldap/servers/plugins/retrocl/$(DEPDIR) ldap/servers/plugins/rever/$(DEPDIR) ldap/servers/plugins/roles/$(DEPDIR) ldap/servers/plugins/shared/$(DEPDIR) ldap/servers/plugins/statechange/$(DEPDIR) ldap/servers/plugins/syntaxes/$(DEPDIR) ldap/servers/plugins/uiduniq/$(DEPDIR) ldap/servers/plugins/views/$(DEPDIR) ldap/servers/slapd/$(DEPDIR) ldap/servers/slapd/back-ldbm/$(DEPDIR) ldap/servers/slapd/tools/$(DEPDIR) ldap/servers/slapd/tools/ldclt/$(DEPDIR) ldap/servers/slapd/tools/rsearch/$(DEPDIR) ldap/servers/snmp/$(DEPDIR) ldap/systools/$(DEPDIR) lib/base/$(DEPDIR) lib/ldaputil/$(DEPDIR) lib/libaccess/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR) >+ -rm -rf ldap/libraries/libavl/$(DEPDIR) ldap/servers/plugins/acl/$(DEPDIR) ldap/servers/plugins/bitwise/$(DEPDIR) ldap/servers/plugins/chainingdb/$(DEPDIR) ldap/servers/plugins/collation/$(DEPDIR) ldap/servers/plugins/cos/$(DEPDIR) ldap/servers/plugins/distrib/$(DEPDIR) ldap/servers/plugins/dna/$(DEPDIR) ldap/servers/plugins/http/$(DEPDIR) ldap/servers/plugins/memberof/$(DEPDIR) ldap/servers/plugins/pam_passthru/$(DEPDIR) ldap/servers/plugins/passthru/$(DEPDIR) ldap/servers/plugins/presence/$(DEPDIR) ldap/servers/plugins/pwdstorage/$(DEPDIR) ldap/servers/plugins/referint/$(DEPDIR) ldap/servers/plugins/replication/$(DEPDIR) ldap/servers/plugins/retrocl/$(DEPDIR) ldap/servers/plugins/rever/$(DEPDIR) ldap/servers/plugins/roles/$(DEPDIR) ldap/servers/plugins/schema_reload/$(DEPDIR) ldap/servers/plugins/shared/$(DEPDIR) ldap/servers/plugins/statechange/$(DEPDIR) ldap/servers/plugins/syntaxes/$(DEPDIR) ldap/servers/plugins/uiduniq/$(DEPDIR) ldap/servers/plugins/views/$(DEPDIR) ldap/servers/slapd/$(DEPDIR) ldap/servers/slapd/back-ldbm/$(DEPDIR) ldap/servers/slapd/tools/$(DEPDIR) ldap/servers/slapd/tools/ldclt/$(DEPDIR) ldap/servers/slapd/tools/rsearch/$(DEPDIR) ldap/servers/snmp/$(DEPDIR) ldap/systools/$(DEPDIR) lib/base/$(DEPDIR) lib/ldaputil/$(DEPDIR) lib/libaccess/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR) > -rm -f Makefile > distclean-am: clean-am distclean-compile distclean-generic \ > distclean-hdr distclean-libtool distclean-tags > >@@ -9097,9 +9134,9 @@ > > maintainer-clean: maintainer-clean-am > -rm -f $(am__CONFIG_DISTCLEAN_FILES) > -rm -rf $(top_srcdir)/autom4te.cache >- -rm -rf ldap/libraries/libavl/$(DEPDIR) ldap/servers/plugins/acl/$(DEPDIR) ldap/servers/plugins/bitwise/$(DEPDIR) ldap/servers/plugins/chainingdb/$(DEPDIR) ldap/servers/plugins/collation/$(DEPDIR) ldap/servers/plugins/cos/$(DEPDIR) ldap/servers/plugins/distrib/$(DEPDIR) ldap/servers/plugins/dna/$(DEPDIR) ldap/servers/plugins/http/$(DEPDIR) ldap/servers/plugins/memberof/$(DEPDIR) ldap/servers/plugins/pam_passthru/$(DEPDIR) ldap/servers/plugins/passthru/$(DEPDIR) ldap/servers/plugins/presence/$(DEPDIR) ldap/servers/plugins/pwdstorage/$(DEPDIR) ldap/servers/plugins/referint/$(DEPDIR) ldap/servers/plugins/replication/$(DEPDIR) ldap/servers/plugins/retrocl/$(DEPDIR) ldap/servers/plugins/rever/$(DEPDIR) ldap/servers/plugins/roles/$(DEPDIR) ldap/servers/plugins/shared/$(DEPDIR) ldap/servers/plugins/statechange/$(DEPDIR) ldap/servers/plugins/syntaxes/$(DEPDIR) ldap/servers/plugins/uiduniq/$(DEPDIR) ldap/servers/plugins/views/$(DEPDIR) ldap/servers/slapd/$(DEPDIR) ldap/servers/slapd/back-ldbm/$(DEPDIR) ldap/servers/slapd/tools/$(DEPDIR) ldap/servers/slapd/tools/ldclt/$(DEPDIR) ldap/servers/slapd/tools/rsearch/$(DEPDIR) ldap/servers/snmp/$(DEPDIR) ldap/systools/$(DEPDIR) lib/base/$(DEPDIR) lib/ldaputil/$(DEPDIR) lib/libaccess/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR) >+ -rm -rf ldap/libraries/libavl/$(DEPDIR) ldap/servers/plugins/acl/$(DEPDIR) ldap/servers/plugins/bitwise/$(DEPDIR) ldap/servers/plugins/chainingdb/$(DEPDIR) ldap/servers/plugins/collation/$(DEPDIR) ldap/servers/plugins/cos/$(DEPDIR) ldap/servers/plugins/distrib/$(DEPDIR) ldap/servers/plugins/dna/$(DEPDIR) ldap/servers/plugins/http/$(DEPDIR) ldap/servers/plugins/memberof/$(DEPDIR) ldap/servers/plugins/pam_passthru/$(DEPDIR) ldap/servers/plugins/passthru/$(DEPDIR) ldap/servers/plugins/presence/$(DEPDIR) ldap/servers/plugins/pwdstorage/$(DEPDIR) ldap/servers/plugins/referint/$(DEPDIR) ldap/servers/plugins/replication/$(DEPDIR) ldap/servers/plugins/retrocl/$(DEPDIR) ldap/servers/plugins/rever/$(DEPDIR) ldap/servers/plugins/roles/$(DEPDIR) ldap/servers/plugins/schema_reload/$(DEPDIR) ldap/servers/plugins/shared/$(DEPDIR) ldap/servers/plugins/statechange/$(DEPDIR) ldap/servers/plugins/syntaxes/$(DEPDIR) ldap/servers/plugins/uiduniq/$(DEPDIR) ldap/servers/plugins/views/$(DEPDIR) ldap/servers/slapd/$(DEPDIR) ldap/servers/slapd/back-ldbm/$(DEPDIR) ldap/servers/slapd/tools/$(DEPDIR) ldap/servers/slapd/tools/ldclt/$(DEPDIR) ldap/servers/slapd/tools/rsearch/$(DEPDIR) ldap/servers/snmp/$(DEPDIR) ldap/systools/$(DEPDIR) lib/base/$(DEPDIR) lib/ldaputil/$(DEPDIR) lib/libaccess/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR) > -rm -f Makefile > maintainer-clean-am: distclean-am maintainer-clean-generic > > mostlyclean: mostlyclean-am
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 436837
:
307257
|
308278
|
308379
| 308400 |
308403
|
308554
|
308555
|
308847
|
308848
|
311975