Bug 172999

Summary: e-d-s missing function declarations when built against openldap-2.3
Product: [Fedora] Fedora Reporter: Dave Malcolm <dmalcolm>
Component: evolution-data-serverAssignee: Dave Malcolm <dmalcolm>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fenlason
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-11-29 21:02:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 150221, 172882    

Description Dave Malcolm 2005-11-11 22:21:30 UTC
The specfile is set up to build e-d-s with -Werror-implicit-function-declaration
(to help trap 64-bit cleanliness problems etc)

Getting the following when rebuilding against the new openldap:
e2k-global-catalog.c:141: error: implicit declaration of function 'ldap_unbind'
e2k-global-catalog.c:198: error: implicit declaration of function 'ldap_abandon'
e2k-global-catalog.c:328: error: implicit declaration of function
'ldap_simple_bind_s'
e2k-global-catalog.c:348: error: implicit declaration of function 'ldap_init'
e2k-global-catalog.c:472: error: implicit declaration of function 'ldap_get_values'
e2k-global-catalog.c:488: error: implicit declaration of function 'ldap_value_free'

Works with openldap-devel-2.2.29-2
Fails with openldap-devel-2.3.11-2

Looks like the functions were deprecated in 2.2

Comment 1 Jay Fenlason 2005-11-14 17:22:38 UTC
Easy workaround it to add -DLDAP_DEPRECATED to your $RPM_OPT_FLAGS in your 
spec file. 

Comment 2 Dave Malcolm 2005-11-29 13:48:53 UTC
Also affects evolution and evolution-connector:

evolution:
addressbook-config.c: In function 'addressbook_ldap_init':
addressbook-config.c:248: error: implicit declaration of function 'ldap_init'
addressbook-config.c:248: warning: assignment makes pointer from integer without
a cast
addressbook-config.c: In function 'addressbook_ldap_auth':
addressbook-config.c:270: error: implicit declaration of function
'ldap_simple_bind_s'
addressbook-config.c: In function 'do_ldap_root_dse_query':
addressbook-config.c:349: error: implicit declaration of function 'ldap_get_values'
addressbook-config.c:349: warning: assignment makes pointer from integer without
a cast
addressbook-config.c:362: error: implicit declaration of function 'ldap_value_free'
addressbook-config.c:363: error: implicit declaration of function 'ldap_unbind_s'

evolution-connector:
e-book-backend-gal.c: In function 'gal_reconnect':
e-book-backend-gal.c:269: error: implicit declaration of function 'ldap_unbind'
e-book-backend-gal.c:269: warning: nested extern declaration of 'ldap_unbind'
e-book-backend-gal.c: In function 'ldap_op_finished':
e-book-backend-gal.c:334: error: implicit declaration of function 'ldap_abandon'
e-book-backend-gal.c:334: warning: nested extern declaration of 'ldap_abandon'
e-book-backend-gal.c: In function 'build_contact_from_entry':
e-book-backend-gal.c:1222: error: implicit declaration of function 'ldap_get_values'
e-book-backend-gal.c:1222: warning: nested extern declaration of 'ldap_get_values'
e-book-backend-gal.c:1222: warning: assignment makes pointer from integer
without a cast
e-book-backend-gal.c:1227: error: implicit declaration of function 'ldap_value_free'
e-book-backend-gal.c:1227: warning: nested extern declaration of 'ldap_value_free'
e-book-backend-gal.c:1242: warning: assignment makes pointer from integer
without a cast



Comment 3 Dave Malcolm 2005-11-29 15:09:31 UTC
I've taken the easy fix and added -DLDAP_DEPRECATED to CFLAGS in each package;
should be fixed in:
evolution-data-server-1.4.1.1-3
evolution-2.4.1-8
evolution-connector-2.4.1-3

(Should get this fixed properly upstream though)

Comment 4 Dave Malcolm 2005-11-29 21:02:02 UTC
From talking to Jay, the deprecated functions will continue to exist in
openldap-2.3.*

They may get removed in 2.4.*, but this will be a separate branch, rather than a
development vs unstable split (appears not to follow the kernel versioning
model) so we should get plenty of warning of the removal.

So I'm going to resolve this as RAWHIDE (fixed in the packages referenced in
comment #3 above); we'll fix this fully upstream when it becomes a real problem.