Fails to build against git master of OpenLDAP (vendor version check)
Unless I add #include <ldap_schema.h> in src/addressbook/backends/ldap/e-book-backend-ldap.c:, compling with the newest OpenLDAP (git/master) fails with:
[ 44%] Built target ebookbackendfile
[ 44%] Building C object src/addressbook/backends/ldap/CMakeFiles/ebookbackendldap.dir/e-book-backend-ldap.c.o
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:509:40: error: unknown type name ‘LDAPObjectClass’; did you mean ‘GObjectClass’?
LDAPObjectClass *oc)
^~~~~~~~~~~~~~~
GObjectClass
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c: In function ‘check_schema_support’:
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:567:5: error: unknown type name ‘LDAPObjectClass’; did you mean ‘GObjectClass’?
LDAPObjectClass *oc = ldap_str2objectclass (values[i], &code, &err, 0);
^~~~~~~~~~~~~~~
GObjectClass
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:567:27: error: implicit declaration of function ‘ldap_str2objectclass’; did you mean ‘ldap_sort_entries’? [-Werror=implicit-function-declaration]
LDAPObjectClass *oc = ldap_str2objectclass (values[i], &code, &err, 0);
^~~~~~~~~~~~~~~~~~~~
ldap_sort_entries
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:567:27: warning: nested extern declaration of ‘ldap_str2objectclass’ [-Wnested-externs]
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:567:27: warning: initialization of ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:572:19: error: request for member ‘oc_names’ in something not a structure or union
for (j = 0; oc->oc_names[j]; j++)
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:573:33: error: request for member ‘oc_names’ in something not a structure or union
if (!g_ascii_strcasecmp (oc->oc_names[j], EVOLUTIONPERSON)) {
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:578:7: error: implicit declaration of function ‘add_oc_attributes_to_supported_fields’; did you mean ‘add_to_supported_fields’? [-Werror=implicit-function-declaration]
add_oc_attributes_to_supported_fields (bl, oc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
add_to_supported_fields
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:578:7: warning: nested extern declaration of ‘add_oc_attributes_to_supported_fields’ [-Wnested-externs]
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:580:38: error: request for member ‘oc_names’ in something not a structure or union
else if (!g_ascii_strcasecmp (oc->oc_names[j], CALENTRY)) {
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:586:38: error: request for member ‘oc_names’ in something not a structure or union
else if (!g_ascii_strcasecmp (oc->oc_names[j], INETORGPERSON)
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:587:34: error: request for member ‘oc_names’ in something not a structure or union
|| !g_ascii_strcasecmp (oc->oc_names[j], ORGANIZATIONALPERSON)
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:588:34: error: request for member ‘oc_names’ in something not a structure or union
|| !g_ascii_strcasecmp (oc->oc_names[j], PERSON)
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:589:34: error: request for member ‘oc_names’ in something not a structure or union
|| !g_ascii_strcasecmp (oc->oc_names[j], GROUPOFNAMES)) {
^~
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:593:5: error: implicit declaration of function ‘ldap_objectclass_free’; did you mean ‘ldap_controls_free’? [-Werror=implicit-function-declaration]
ldap_objectclass_free (oc);
^~~~~~~~~~~~~~~~~~~~~
ldap_controls_free
/git/gnome/evolution-data-server/src/addressbook/backends/ldap/e-book-backend-ldap.c:593:5: warning: nested extern declaration of ‘ldap_objectclass_free’ [-Wnested-externs]
cc1: some warnings being treated as errors
make[2]: *** [src/addressbook/backends/ldap/CMakeFiles/ebookbackendldap.dir/build.make:63: src/addressbook/backends/ldap/CMakeFiles/ebookbackendldap.dir/e-book-backend-ldap.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1935: src/addressbook/backends/ldap/CMakeFiles/ebookbackendldap.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Edited by Milan Crha