Open dalgaaf opened 6 years ago
I will take care of it. Configure should enforce to check for dovecot-devel >= 2.2.21.
The actual error was:
Making all in dict-rados
make[3]: Entering directory '/home/gtenagli/dovecot-ceph-plugin/src/dict-rados'
depbase=echo libdict-rados-plugin.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'
;\
/bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/dovecot -I../../src/librmb -fno-strict-aliasing -Wall -Wextra -Wundef -Wnested-externs -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wformat=2 -Wold-style-definition -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wimplicit-function-declaration -Wreturn-type -Wswitch-enum -Wswitch-default -Wno-declaration-after-statement -Wno-error=unused-parameter -Wno-error=missing-field-initializers -Wno-error=declaration-after-statement -std=gnu99 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fno-strict-aliasing -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -I../.. -I/usr/include/dovecot -MT libdict-rados-plugin.lo -MD -MP -MF $depbase.Tpo -c -o libdict-rados-plugin.lo libdict-rados-plugin.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/dovecot -I../../src/librmb -fno-strict-aliasing -Wall -Wextra -Wundef -Wnested-externs -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wformat=2 -Wold-style-definition -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wimplicit-function-declaration -Wreturn-type -Wswitch-enum -Wswitch-default -Wno-declaration-after-statement -Wno-error=unused-parameter -Wno-error=missing-field-initializers -Wno-error=declaration-after-statement -std=gnu99 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fno-strict-aliasing -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -I../.. -I/usr/include/dovecot -MT libdict-rados-plugin.lo -MD -MP -MF .deps/libdict-rados-plugin.Tpo -c libdict-rados-plugin.c -fPIC -DPIC -o .libs/libdict-rados-plugin.o
In file included from libdict-rados-plugin.c:15:0:
dict-rados.h:15:79: warning: 'struct dict_settings' declared inside parameter list will not be visible outside of this definition or declaration
extern int rados_dict_init(struct dict driver, const char uri, const struct dict_settings *set, struct dict dict_r,
^~~~~
dict-rados.h:28:74: error: unknown type name 'dict_lookup_callback_t'; did you mean 'lib_atexit_callback_t'?
extern void rados_dict_lookup_async(struct dict _dict, const char key, dict_lookup_callback_t callback,
^~~~~~
lib_atexit_callback_t
libdict-rados-plugin.c:20:43: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
{.init = rados_dict_init,
^~~~~~~
libdict-rados-plugin.c:20:43: note: (near initialization for 'dict_driver_rados.v.init')
libdict-rados-plugin.c:39:36: error: 'struct dict_vfuncs' has no member named 'lookup_async'; did you mean 'lookup'?
.lookup_async = rados_dict_lookup_async
^~~~
lookup
libdict-rados-plugin.c:39:51: error: 'rados_dict_lookup_async' undeclared here (not in a function); did you mean 'rados_dict_lookup'?
.lookup_async = rados_dict_lookup_async
^~~~~~~
rados_dict_lookup
libdict-rados-plugin.c:39:51: warning: excess elements in struct initializer
libdict-rados-plugin.c:39:51: note: (near initialization for 'dict_driver_rados.v')
make[3]: [Makefile:578: libdict-rados-plugin.lo] Error 1
I rather have this work with the default redhat / centos el7 supported dovecot 2.2.10. There is were it will be deployed mostly (I assume).
Report from CERN (giacomo.tenaglia@cern.ch):
I am trying to build the plugin on CentOS 7 and I'm getting the attached error. I have the following versions of ceph and dovecot packages installed:
ceph-12.2.5-0.el7.x86_64 ceph-base-12.2.5-0.el7.x86_64 ceph-common-12.2.5-0.el7.x86_64 ceph-mds-12.2.5-0.el7.x86_64 ceph-mgr-12.2.5-0.el7.x86_64 ceph-mon-12.2.5-0.el7.x86_64 ceph-osd-12.2.5-0.el7.x86_64 ceph-selinux-12.2.5-0.el7.x86_64 dovecot-2.2.10-8.el7.x86_64 dovecot-devel-2.2.10-8.el7.x86_64 libcephfs2-12.2.5-0.el7.x86_64 librados2-12.2.5-0.el7.x86_64 librados-devel-12.2.5-0.el7.x86_64 libradosstriper1-12.2.5-0.el7.x86_64 librbd1-12.2.5-0.el7.x86_64 librbd-devel-12.2.5-0.el7.x86_64 python-cephfs-12.2.5-0.el7.x86_64 python-rados-12.2.5-0.el7.x86_64 python-rbd-12.2.5-0.el7.x86_64 rados-objclass-devel-12.2.5-0.el7.x86_64
I've seen in the instructions at https://github.com/ceph-dovecot/dovecot-ceph-plugin that it is mentioned "If you are using CentOS make sure you also have the following package installed: redhat-rpm-config", so I suppose there is a way to have it build on CentOs..