Hello Dovecot users!

There seems to be a new dependency in some modules (eg, lib-storage,
libdovecot-lda, libdovecot-ssl) on OpenSSL. In Dovecot 2.0, those
modules didn't require OpenSSL, but 2.1 does.

For the linking process the path to the OpenSSL library isn't
specified properly (SSL_LIBS). Dovecot fails to build if OpenSSL
is in a non-standard path. (Haven't checked if SSL_CFLAGS isn't
properly used as well.)

Example for lib-storage:

env SSL_CFLAGS="-I/usr/local/ssl/include" SSL_LIBS="-L/usr/local/ssl/lib 
-Wl,-R/usr/local/ssl/lib -lcrypto -lssl" ./configure 
--prefix=/usr/local/${DOVECOTVER} --with-ssl=openssl 
--with-ssldir=/usr/local/${DOVECOTVER}/etc/dovecot/certs

make

gcc -DHAVE_CONFIG_H -I. -I../..  -I../../src/lib -I../../src/lib-master 
-I../../src/lib-settings -I../../src/lib-mail -I../../src/lib-storage 
-DPKG_RUNDIR=\""/usr/local/Dovecot-2.1.1/var/run/dovecot"\"   -std=gnu99 -g -O2 
-Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith 
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime 
-Wstrict-aliasing=2 -I/usr/local/ssl/include  -MT master-connection.o -MD -MP 
-MF .deps/master-connection.Tpo -c -o master-connection.o master-connection.c
mv -f .deps/master-connection.Tpo .deps/master-connection.Po
/bin/sh ../../libtool --tag=CC   --mode=link gcc  -std=gnu99 -g -O2 -Wall -W 
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts 
-Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 
-I/usr/local/ssl/include   -no-undefined -Wl,--as-needed  -o indexer-worker 
indexer-worker.o indexer-worker-settings.o master-connection.o 
../../src/lib-storage/libdovecot-storage.la  
../../src/lib-dovecot/libdovecot.la -export-dynamic -ldl -lrt
libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes 
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 
-Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 
-I/usr/local/ssl/include -Wl,--as-needed -o .libs/indexer-worker 
indexer-worker.o indexer-worker-settings.o master-connection.o 
-Wl,--export-dynamic  ../../src/lib-storage/.libs/libdovecot-storage.so 
../../src/lib-dovecot/.libs/libdovecot.so -ldl -lrt -Wl,-rpath 
-Wl,/usr/local/Dovecot-2.1.1/lib/dovecot
/usr/bin/ld: warning: libcrypto.so.1.0.0, needed by 
../../src/lib-storage/.libs/libdovecot-storage.so, not found (try using -rpath 
or -rpath-link)
/usr/bin/ld: warning: libssl.so.1.0.0, needed by 
../../src/lib-storage/.libs/libdovecot-storage.so, not found (try using -rpath 
or -rpath-link)
../../src/lib-storage/.libs/libdovecot-storage.so: undefined reference to 
`OBJ_txt2nid'
../../src/lib-storage/.libs/libdovecot-storage.so: undefined reference to 
`SSL_set_ex_data'
[...]

# ldd src/lib*/.libs/*.so
src/lib-dovecot/.libs/libdovecot.so:
        linux-gate.so.1 =>  (0x00979000)
        libdl.so.2 => /lib/libdl.so.2 (0x00c31000)
        librt.so.1 => /lib/librt.so.1 (0x009ed000)
        libc.so.6 => /lib/libc.so.6 (0x0054d000)
        /lib/ld-linux.so.2 (0x00c12000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x008f4000)
src/lib-lda/.libs/libdovecot-lda.so:
        linux-gate.so.1 =>  (0x0096d000)
        libdovecot-storage.so.0 => 
/usr/local/src/dovecot-2.1.1/src/lib-storage/.libs/libdovecot-storage.so.0 
(0x00ae4000)
        libdovecot.so.0 => 
/usr/local/src/dovecot-2.1.1/src/lib-dovecot/.libs/libdovecot.so.0 (0x00110000)
        librt.so.1 => /lib/librt.so.1 (0x00189000)
        libc.so.6 => /lib/libc.so.6 (0x00192000)
        libcrypto.so.1.0.0 => not found
        libssl.so.1.0.0 => not found
        libdl.so.2 => /lib/libdl.so.2 (0x0031c000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00ebc000)
        /lib/ld-linux.so.2 (0x003f8000)
src/lib-sql/.libs/libdovecot-sql.so:
        linux-gate.so.1 =>  (0x00a95000)
        libdovecot.so.0 => 
/usr/local/src/dovecot-2.1.1/src/lib-dovecot/.libs/libdovecot.so.0 (0x002b6000)
        libdl.so.2 => /lib/libdl.so.2 (0x00ab8000)
        librt.so.1 => /lib/librt.so.1 (0x0072a000)
        libc.so.6 => /lib/libc.so.6 (0x008f7000)
        /lib/ld-linux.so.2 (0x00ebd000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00619000)
src/lib-ssl-iostream/.libs/libdovecot-ssl.so:
        linux-gate.so.1 =>  (0x00da6000)
        libcrypto.so.1.0.0 => not found
        libssl.so.1.0.0 => not found
        libdl.so.2 => /lib/libdl.so.2 (0x00df0000)
        librt.so.1 => /lib/librt.so.1 (0x00112000)
        libc.so.6 => /lib/libc.so.6 (0x00b5e000)
        /lib/ld-linux.so.2 (0x00e76000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x005a6000)
src/lib-storage/.libs/libdovecot-storage.so:
        linux-gate.so.1 =>  (0x006ed000)
        libcrypto.so.1.0.0 => not found
        libssl.so.1.0.0 => not found
        libdovecot.so.0 => 
/usr/local/src/dovecot-2.1.1/src/lib-dovecot/.libs/libdovecot.so.0 (0x00c66000)
        libdl.so.2 => /lib/libdl.so.2 (0x00491000)
        librt.so.1 => /lib/librt.so.1 (0x00be2000)
        libc.so.6 => /lib/libc.so.6 (0x00110000)
        /lib/ld-linux.so.2 (0x0036b000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0029a000)


Without SSL_CFLAGS and SSL_LIBS but just PKG_CONFIG_PATH,
it also won't work.

        Help appreciated ... Andreas

Reply via email to