RHEL and SSL

I'm having trouble compiling ejabberd on a RHEL system. I believe the problem is with the "odd" places that Red Hat installs openssl and kerberos. If I use a regular ./configure, I get this output:

checking for SSL_new in -lssl... (cached) yes
checking /usr/include/openssl/ssl.h usability... no
checking /usr/include/openssl/ssl.h presence... no
checking for /usr/include/openssl/ssl.h... no

If I issue a export CPPFLAGS="-I/usr/Kerberos/include", I now get:

checking for SSL_new in -lssl... (cached) yes
checking /usr/include/openssl/ssl.h usability... yes
checking /usr/include/openssl/ssl.h presence... yes
checking for /usr/include/openssl/ssl.h... yes

After a make, I get this output:

/usr/include/openssl/kssl.h:165: syntax error before "atime"
/usr/include/openssl/kssl.h:167: syntax error before "kssl_check_authent"
/usr/include/openssl/kssl.h:167: syntax error before '*' token
/usr/include/openssl/kssl.h:169: syntax error before "enctype"
In file included from tls_drv.c:6:
/usr/include/openssl/ssl.h:909: syntax error before "KSSL_CTX"
/usr/include/openssl/ssl.h:931: syntax error before '}' token
make[1]: *** [../tls_drv.so] Error 1
make[1]: Leaving directory `/usr/local/ejabberd/src/tls'
make: *** [all-recursive] Error 1

I also tried setting the LDFLAGS and CPPFLAGS like this:

./configure CPPFLAGS='-I/usr/kerberos/include -I/usr/include/openssl' LDFLAGS='-
L/usr/kerberos/lib' --with-openssl=/usr/include/

Even then, I still get the same "Error 1"

Any ideas how to get this to compile on a RHEL box?

Thanks!

I was finally able to get eja

I was finally able to get ejabber to compile, but only after adding the following line to ssl.h:

#define OPENSSL_NO_KRB5

On my first attempt to register an account on the server, it failed. I tried both with and without SSL enabled on the client and it failed either way. In fact, the ejabberd daemons would die and the last thing listed in the ejabberd.log was:

=ERROR REPORT==== 2005-04-18 15:57:35 ===
** State machine <0.278.0> terminating
** Last event in was {xmlstreamelement,
                         {xmlelement,"starttls",
                                     [{"xmlns",
                                       "urn:ietf:params:xml:ns:xmpp-tls"}],
                                     []}}

Looks like there is an issue with TLS.

I modified the ejabberd.cfg listen section to contain:

{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper}]},
  {5223, ejabberd_c2s,     [{access, c2s}, ssl, 
                         {certfile, "/usr/local/ejabberd/server.pem"}]}

I'm now able to register and use the Jabber service, but am still puzzled as to why the system isn't behaving as well as my Fedora systems. I didn't have these troubles with them.

For those who want to use RHEL

Here is the line I used to get configure to run properly on my RHEL3 system:

./configure CFLAGS='-I/usr/local/ssl/include' CCFLAGS='-I-I/usr/local/ssl/include' CPPFLAGS='-I/usr/kerberos/include -I/usr/local/ssl/include' LDFLAGS='-L/usr/kerberos/lib -L/usr/local/ssl/lib' --with-openssl=/usr/local/ssl/

Enjoy!

Syndicate content