[Dovecot] Sieve compilation error
Hi list
Trying to get sieve for 1.2 running (dovecot sieve, not cmusieve)
I'm running on centos 5.4 64bit, dovecot rpms installed from http://atrpms.net/dist/el5/dovecot/ ( dovecot-1.2.7-0_102.el5.x86_64.rpm and dovecot-devel-1.2.7-0_102.el5.x86_64.rpm )
I pulled the sieve sources ( hg clone http://hg.rename-it.nl/dovecot-1.2-sieve ) autogen.sh ./configure --with-dovecot=/usr/include/dovecot/
so far so good
but make fails:
[...]
make[4]: Leaving directory /work/dovecot-1.2-sieve/src/sieve-tools/debug' make[4]: Entering directory
/work/dovecot-1.2-sieve/src/sieve-tools'
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../src/lib-sieve
-I../../src/lib-sieve-tool -I./debug -I/usr/include/dovecot
-I/usr/include/dovecot/src/lib -I/usr/include/dovecot/src/lib-mail
-I/usr/include/dovecot/src/lib-index
-I/usr/include/dovecot/src/lib-storage
-I/usr/include/dovecot/src/deliver -std=gnu99 -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -Wstrict-aliasing=2
-I/usr/kerberos/include -MT sievec.o -MD -MP -MF ".deps/sievec.Tpo" -c
-o sievec.o sievec.c;
then mv -f ".deps/sievec.Tpo" ".deps/sievec.Po"; else rm -f
".deps/sievec.Tpo"; exit 1; fi
make[4]: *** No rule to make target
/usr/include/dovecot/src/lib-storage/register/libstorage-register.a', needed by
sievec'. Stop.
make[4]: Leaving directory /work/dovecot-1.2-sieve/src/sieve-tools' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory
/work/dovecot-1.2-sieve/src/sieve-tools'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /work/dovecot-1.2-sieve/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
/work/dovecot-1.2-sieve'
make: *** [all] Error 2
Any hints?
Thanks in advance Oli
Oli Schacher wrote:
Hi list
Trying to get sieve for 1.2 running (dovecot sieve, not cmusieve)
I'm running on centos 5.4 64bit, dovecot rpms installed from http://atrpms.net/dist/el5/dovecot/ ( dovecot-1.2.7-0_102.el5.x86_64.rpm and dovecot-devel-1.2.7-0_102.el5.x86_64.rpm )
I pulled the sieve sources ( hg clone http://hg.rename-it.nl/dovecot-1.2-sieve ) autogen.sh ./configure --with-dovecot=/usr/include/dovecot/
--with-dovecot points to the directory containing the dovecot-config file. In the default dovecot makefile this is installed in $prefix/lib/dovecot. In your case it is apparently installed in the include/dovecot directory which confuses Sieve's configure script, thinking it is compiling against the sources in stead of the headers only.
In Dovecot Sieve's configure.in:
if test -d "$dovecotdir/src"; then # compiling against sources have_dovecot_libs=yes else # compiling against installed headers echo "WARNING: Cannot build Sieve commandline tools without the compiled" echo " Dovecot sources. Compiling against headers will only build" echo " the Sieve plugin." have_dovecot_libs=no fi
The directory src exists in your include/dovecot, causing your problem.
Any hints?
Adjusting configure.in should help.
Timo: perhaps we can make the autodetection more robust, what do you think? :)
Regards,
Stephan
Stephan Bosch schrieb:
--with-dovecot points to the directory containing the dovecot-config file. In the default dovecot makefile this is installed in $prefix/lib/dovecot. In your case it is apparently installed in the include/dovecot directory which confuses Sieve's configure script, thinking it is compiling against the sources in stead of the headers only.
Thanks for the pointer, Stephan! I checked again and found another dovecot-config in /usr/lib64/dovecot. If I pass this directory to configure the compilation runs through just fine.
On Thu, 2009-11-19 at 10:48 +0100, Stephan Bosch wrote:
Timo: perhaps we can make the autodetection more robust, what do you think? :)
I think --with-dovecot (and --with-sieve with managesieve) shouldn't be necessary normally. You could look up dovecot-config first from $prefix/lib/dovecot/ and fallback to /usr/lib/dovecot/ (and /usr/lib64/dovecot/?).
And I suppose with v2.0 if --without-shared-libs isn't given I should start installing it to $prefix/lib/dovecot/ directory and have it include LIBDOVECOT_*=-ldovecot etc. And a pkg-config file would be nice too I guess..
participants (3)
-
Oli Schacher
-
Stephan Bosch
-
Timo Sirainen