Ol� caros colegas da lista. 

Esse problema de compila��o dessa vers�o do Courier, me deu muito trabalho, 
visto que, somente um cara na Internet inteira (via Google) teve 
"exatamente" o mesmo problema, n�o resolveu, e ainda por cima est� na 
R�ssia. 

O problema estava relacionado � fun��o "RSA_generate_key" do OpenSSL, 
chamada do fonte libcouriertls.c, linha 216. 

O meu OpenSSL foi compilado, e � a vers�o 0.9.7g; o SO � o Conectiva 10, que 
tem o OpenSSL 0.9.7c. 

Bem tudo levava a crer que o linker n�o encontrava os headers do OpenSSL, 
uma vez que o erro era "undefined 
reference", embora eu tivesse passados os par�metros vari�veis "CPPFLAGS" e 
"LDFLAGS", conforme decrevi no e-mail anterior. 

O fato � que tive que estudar o fonte e seus headers, para chegar a 
conclus�o que esse programa somente leva em conta a instala��o "nativa" do 
OpenSSL pelos rpms da vida. N�o sei se isso � um Bug, ou uma caracter�stica. 

Ou seja, na insta��o compilada os headers do SSL est�o no diret�rio 
/usr/local/include/openssl/ e as libs est�o no diret�rio /usr/local/lib/ . 

Nos rpms, os headers est�o no diret�rio /usr/include/openssl/ e as libs 
est�o em /usr/lib/ . 

Ent�o bastou criar links simb�licos nesses diret�rios (dos rpms) apontando 
para os diret�rios da compila��o manual. 

Funcionou ! Mas Deu outro erro. Desta vez na fun��o "d2i_SSL_SESSION" tamb�m 
do OpenSSL. 

Estudando novamente os fontes e os headers, descobri que essa fun��o � 
incompat�vel com o OpenSSL 0.9.7g, por que os par�metros passados s�o 
diferentes. Basta comparar os headers "pem.h" e "ssl.h" das duas vers�es, na 
fun��o "d2i_SSL_SESSION". 

Para n�o ter que instalar o OpenSSL 0.9.7c Devel do Conectiva 10, eu copiei 
esse rpm para um diret�rio, descompactei e copiei somente os headers para o 
diret�rio padr�o, como em: 

cp /mnt/cdrom/conectiva/RPMS.002/openssl-devel-0.9.7c-52922cl.i386.rpm 
/root/temp 
cd /root/temp/ 
rpm2cpio openssl-devel-0.9.7c-52922cl.i386.rpm | cpio -i -d 
mv /root/temp/usr/include/openssl/ /usr/include/ 

Ent�o foi s� configurar e compilar tudo: 

./configure --prefix=/usr/local/courier-imap --disable-root-check 
--without-ipv6 --enable-unicode=utf-8,iso-8859-1,gb2312 --with-trashquota 
--with-redhat 
COURIERAUTHCONFIG="/usr/local/courier-authlib/bin/courierauthconfig" 
CPPFLAGS="-I/usr/local/courier-authlib/include" 

make 
/usr/local/sbin/checkinstall -R 
make install-strip 
make install-configure 

Iniciar o Auth Config: 
/usr/local/courier-authlib/sbin/authdaemond start 

Iniciar o Courier: 
/usr/local/courier-imap/libexec/imapd.rc start 

Ainda nessa compila��o o Courier deu uma Warning nessa fun��o 
"d2i_SSL_SESSION", e n�o sei se isso gerar� algum tipo de problema, o fato � 
que compilou e linkou. 

Talvez isso possa ajudar algu�m com o mesmo problema, ou at� mesmo servir de 
ponto de partida. 

Abra�os, 

S�rgio. 

======================================================= 
> Ol� novamente amigos, blz ? 
> 
> Estou ficando de cabelos brancos... N�o consigo compilar o Courier-IMAP. 
D� 
> sempre o mesmo pau. 
> 
> Se algum colega j� tiver compilado o Courier-IMAP 4.0.3 e puder ajudar... 
> 
> Pe�o perd�o aos colegas pelo e-mail gigantesco, mas tentei detalhar o 
m�ximo 
> poss�vel. Agradecido a todos. 
> 
> Conectiva Linux 10 
> courier-authlib-0.56.tar.bz2 
> courier-imap-4.0.3.tar.bz2 
> 
> Tenho as deps instaladas segundo o site do produtor 
> [http://www.courier-mta.org/?download.php~imap] se��o Requirements: 
> 
> C++ compiler: gcc-3.3.3-62745cl, libgcc-3.3.3-62745cl, 
> libstdc++5.0-3.3.3-62745cl, compat-libstdc++-2.8.0-3860cl, 
> libstdc++5.0-devel-3.3.3-62745cl, libstdc++2.10-2.95.4-29033cl est�o 
> instaladas; 
> 
> The GNU make is recommended: make-3.80-61550cl, 
> make-i18n-pt_BR-3.80-61550cl, makedev-2.5-62479cl, automake-1.7.9-41572cl 
> est�o instaladas; 
> 
> GDBM/DB: libgdbm-devel-1.8.3-45888cl e libgdbm3-1.8.3-45888cl est�o 
> instaladas; 
> 
> FAM, the File Alteration Monitor: libfam0-2.6.10-47206cl e 
> libfam-devel-2.6.10-47206cl est�o instaladas; 
> 
> The Courier authentication library: courier-authlib-0.56 compilado, 
> instalado e iniciado em /usr/local/courier-authlib/sbin/authdaemond start 
> (confirmado pelo ps aux); 
> 
> To add SSL support you have to install OpenSSL before installing 
> Courier-IMAP: openssl-0.9.7f compilado e instalado. 
(/usr/local/bin/openssl, 
> /usr/local/include/openssl, /usr/local/openssl); 
> 
> Al�m de: 
> libmysqlclient-devel-4.0.15-62447cl, libmysqlclient12-4.0.15-62447cl, 
> libmysqlclient-devel-static-4.0.15-62447cl, pam-0.77-58129cl e 
> pam-devel-0.77-58129cl. 
> 
> ---------------------------------------------------------------- 
> 
> Para compilar, usei um usu�rio comum do sistema, iniciado com as seguintes 
> vari�veis no bash_profile: 
> 
> CPPFLAGS="-I/usr/local/include/openssl 
-I/usr/local/courier-authlib/include" 
> LDFLAGS="-L/usr/local/courier-authlib/lib -L/usr/lib" 
> COURIERAUTHCONFIG="/usr/local/courier-authlib/bin/courierauthconfig" 
> 
> E exportadas devidamente. 
> 
> O script de configura��o, ficou assim: 
> 
> ./configure --prefix=/usr/local/courie-imap --disable-root-check 
> --without-ipv6 --enable-unicode=utf-8,iso-8859-1,gb2312 --with-trashquota 
> --with-redhat 
> 
> (Tentei outras diretivas, inclusive com as vari�veis no script configure) 
> 
> Transcorre sem problemas, e no final, rodo o make: 
> 
> make 
> 
> S� que d� um erro que n�o consigo resolver: 
> 
> Making all in tcpd 
> make[2]: Entering directory `/usr/local/src/courier-imap-4.0.3/tcpd' 
> make  all-am 
> make[3]: Entering directory `/usr/local/src/courier-imap-4.0.3/tcpd' 
> Linking couriertls 
> libcouriertls.a(libcouriertls.o)(.text+0x397): In function `rsa_callback': 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:216: undefined 
> reference 
> to `RSA_generate_key' 
> libcouriertls.a(libcouriertls.o)(.text+0x51b): In function 
> `process_rsacertfile' 
> : 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:274: undefined 
> reference 
> to `SSL_CTX_use_certificate_chain_file' 
> 
libcouriertls.a(libcouriertls.o)(.text+0x52c):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:280: undefined reference to 
> `SSL_CTX_use_RSAPrivateKey_file 
> ' 
> libcouriertls.a(libcouriertls.o)(.text+0x57f): In function 
> `process_dhcertfile': 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:299: undefined 
> reference 
> to `SSL_CTX_use_certificate_chain_file' 
> 
libcouriertls.a(libcouriertls.o)(.text+0x614):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:328: undefined reference to 
> `SSL_CTX_use_PrivateKey_file' 
> libcouriertls.a(libcouriertls.o)(.text+0x865): In function `tls_create': 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:405: undefined 
> reference 
> to `SSL_load_error_strings' 
> 
libcouriertls.a(libcouriertls.o)(.text+0x86a):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:406: undefined reference to `SSL_library_init' 
> 
libcouriertls.a(libcouriertls.o)(.text+0x8cb):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:421: undefined reference to `TLSv1_method' 
> 
libcouriertls.a(libcouriertls.o)(.text+0xc7c):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:413: undefined reference to `SSLv23_method' 
> 
libcouriertls.a(libcouriertls.o)(.text+0xc86):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:413: undefined reference to `SSLv2_method' 
> libcouriertls.a(libcouriertls.o)(.text+0xe25): In function `cache_add': 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:604: undefined 
> reference 
> to `i2d_SSL_SESSION' 
> 
libcouriertls.a(libcouriertls.o)(.text+0xe97):/usr/local/src/courier-imap-4.0.3/
 
> tcpd/libcouriertls.c:621: undefined reference to `i2d_SSL_SESSION' 
> libcouriertls.a(libcouriertls.o)(.text+0xfaf): In function `get_func': 
> /usr/local/src/courier-imap-4.0.3/tcpd/libcouriertls.c:694: undefined 
> reference 
> to `d2i_SSL_SESSION' 
> collect2: ld returned 1 exit status 
> make[3]: ** [couriertls] Erro 1 
> make[3]: Leaving directory `/usr/local/src/courier-imap-4.0.3/tcpd' 
> make[2]: ** [all] Erro 2 
> make[2]: Leaving directory `/usr/local/src/courier-imap-4.0.3/tcpd' 
> make[1]: ** [all-recursive] Erro 1 
> make[1]: Leaving directory `/usr/local/src/courier-imap-4.0.3' 
> make: ** [all] Erro 2 
> 
> Parece relacionado a autentica��o... 
> 
> Vi v�rios tutoriais na Net, inclusive no FAQ, mas nada que seja relevante. 
> 
> Estou seguindo os seguintes tutoriais: 
> http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=526&pagina=9 
> http://www.flatmtn.com/computer/Linux-Imap-Courier.html 
> http://www.hupo.org.cn/docs/linuxdoc/courier-imap-3.0.3/FAQ.html 
> http://br-linux.org/tutoriais/003409.html 
> 
http://64.233.161.104/linux?q=cache:GgpfQlW9Q5kJ:freeos.cn/files/linux_mail_mysql_php.txt+courier-authlib+configure+make&hl=pt-BR
 
> http://www.courier-mta.org/?download.php~imap 
> http://www.linuxti.pro.br/tutoriais/qmail.html 
> 
> Somente 2 desses tutorias s�o de vers�es pr�ximas ao que estou tentando 
> compilar. 
> 
> O tutorial que estou tentando implantar � o seguinte: 
> http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=526&pagina=1 
> 
> Obrigado, 
> 
> S�rgio. 
> 
======================================================= 
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a