aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2008-01-15 16:09:07 +0000
committerBadlop <badlop@process-one.net>2008-01-15 16:09:07 +0000
commit561cf36c817389b4209dbfc81119ac23fa869d19 (patch)
treecf0445ae6e96171a7819d3b89584879132b4afec
parent* src/ejabberdctl.template: Instead of using the Erlang kernel (diff)
Merge changesets 1150 and 1151 into branch ejabberd-2.0.x:
* src/Makefile.in: Allow compilation with Erlang R12 (EJAB-446) (thanks to Sergei Golovan and Maxim Treskin). Erlang R12 version is not supported and not recommended for production servers. * src/aclocal.m4: Likewise * src/configure.ac: Likewise * src/configure: Likewise * src/ejabberd_s2s_in.erl: Likewise Small fixes in trunk/ChangeLog. SVN Revision: 1152
-rw-r--r--ChangeLog24
-rw-r--r--src/Makefile.in5
-rw-r--r--src/aclocal.m442
-rwxr-xr-xsrc/configure25
-rw-r--r--src/configure.ac9
-rw-r--r--src/ejabberd_s2s_in.erl4
6 files changed, 82 insertions, 27 deletions
diff --git a/ChangeLog b/ChangeLog
index 5cea067eb..f46c25473 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,19 @@
+2008-01-15 Jérôme Sautret <jerome.sautret@process-one.net>
+
+ * src/Makefile.in: Allow compilation with Erlang R12 (EJAB-446)
+ (thanks to Sergei Golovan and Maxim Treskin). Erlang R12 version is
+ not supported and not recommended for production servers.
+ * src/aclocal.m4: Likewise
+ * src/configure.ac: Likewise
+ * src/configure: Likewise
+ * src/ejabberd_s2s_in.erl: Likewise
+
2008-01-13 Badlop <badlop@process-one.net>
* src/ejabberdctl.template: Instead of using the Erlang kernel
variable 'inetrc', use the ERL_INETRC environment variable that is
available since Erlang/OTP R10B-5.
-
+
2008-01-12 Christophe Romain <christophe.romain@process-one.net>
* src/mod_pubsub/mod_pubsub.erl: set_subscription fix (EJAB-494)
@@ -45,14 +55,14 @@
* src/web/ejabberd_web_admin.erl: Uniformize ejabberd name in the
text using the Latex command
-
+
* src/mod_muc/mod_muc_room.erl: Resend 'continue' elements in muc
room invitations (EJAB-490)
* src/ejabberdctl.template: Create logs_dir if doesn't exist. New
parameters --config, --ctl-config, --logs, --spool. Crash dump
renamed to erl_crash_DATETIME.dump.
-
+
* src/ejabberdctl.template: Backport improvements from binary
installer (EJAB-488): options are simple values; enable Kernel
Poll by default, set SMP to auto, set max ports to 32000, max
@@ -65,7 +75,7 @@
* doc/guide.tex: Likewise
2007-12-31 Badlop <badlop@process-one.net>
-
+
* src/msgs/ca.msg: Updated (thanks to Vicent Alberola Canet)
2007-12-29 Alexey Shchepin <alexey@process-one.net>
@@ -212,7 +222,7 @@
* src/mod_muc/mod_muc_log.erl: Add handling of kicks 321, 322, 332
* doc/guide.tex: Document mod_privacy_odbc
-
+
* doc/Makefile: Support for conditional inclusion of documentation
from contributed modules
* doc/guide.tex: Likewise
@@ -284,7 +294,7 @@
new ones on top. Each string must be in a single line (to
facilitate the automatic removal of unused strings). Last four
lines report file format for Emacs and Vim.
-
+
* contrib/extract_translations/prepare-translation.sh: New
features: extract all translations, include explanation for
translators in the file, remove unused strings from file, include
@@ -303,7 +313,7 @@
* src/mod_pubsub/mod_pubsub.erl: presence handler bugfix
* src/mod_pubsub/node_default.erl: Allow send last item on presence
-
+
2007-12-12 Badlop <badlop@process-one.net>
* src/msgs/it.msg: Updated (thanks to Luca Brivio)
diff --git a/src/Makefile.in b/src/Makefile.in
index d00daa616..c05c2ebf3 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -12,6 +12,8 @@ ERLANG_CFLAGS= @ERLANG_CFLAGS@
EXPAT_LIBS = @EXPAT_LIBS@
ERLANG_LIBS = @ERLANG_LIBS@
+ERLC_FLAGS += @ERLANG_SSL39@
+
ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj
# make debug=true to compile Erlang module with debug informations.
ifdef debug
@@ -46,7 +48,7 @@ ERLBEHAVS = cyrsasl.erl gen_mod.erl p1_fsm.erl
SOURCES = $(ERLBEHAVS) $(wildcard *.erl)
BEAMS = $(SOURCES:.erl=.beam)
-DESTDIR =
+DESTDIR =
EJABBERDDIR = $(DESTDIR)@prefix@/var/lib/ejabberd
BEAMDIR = $(EJABBERDDIR)/ebin
@@ -144,4 +146,3 @@ Makefile: Makefile.in
dialyzer: $(BEAMS)
@dialyzer -c .
-
diff --git a/src/aclocal.m4 b/src/aclocal.m4
index 0115f214c..46020d339 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -8,7 +8,7 @@ AC_DEFUN(AM_WITH_EXPAT,
EXPAT_CFLAGS="-I$with_expat/include"
EXPAT_LIBS="-L$with_expat/lib"
fi
-
+
AC_CHECK_LIB(expat, XML_ParserCreate,
[ EXPAT_LIBS="$EXPAT_LIBS -lexpat"
expat_found=yes ],
@@ -42,7 +42,7 @@ AC_DEFUN(AM_WITH_ZLIB,
ZLIB_CFLAGS="-I$with_zlib/include"
ZLIB_LIBS="-L$with_zlib/lib"
fi
-
+
AC_CHECK_LIB(z, gzgets,
[ ZLIB_LIBS="$ZLIB_LIBS -lz"
zlib_found=yes ],
@@ -76,7 +76,7 @@ AC_DEFUN(AM_WITH_PAM,
PAM_CFLAGS="-I$with_pam/include"
PAM_LIBS="-L$with_pam/lib"
fi
-
+
AC_CHECK_LIB(pam, pam_start,
[ PAM_LIBS="$PAM_LIBS -lpam"
pam_found=yes ],
@@ -106,26 +106,33 @@ AC_DEFUN(AM_WITH_ERLANG,
AC_PATH_TOOL(ERLC, erlc, , $with_erlang:$with_erlang/bin:$PATH)
AC_PATH_TOOL(ERL, erl, , $with_erlang:$with_erlang/bin:$PATH)
-
+
if test "z$ERLC" = "z" || test "z$ERL" = "z"; then
AC_MSG_ERROR([erlang not found])
fi
-
-
+
+
cat >>conftest.erl <<_EOF
-
+
-module(conftest).
-author('alexey@sevcom.net').
-export([[start/0]]).
+-include_lib("ssl/include/ssl_pkix.hrl").
start() ->
EIDirS = code:lib_dir("erl_interface") ++ "\n",
EILibS = libpath("erl_interface") ++ "\n",
RootDirS = code:root_dir() ++ "\n",
- file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ RootDirS)),
+ file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ ssldef() ++ RootDirS)),
halt().
+-[ifdef]('id-pkix').
+ssldef() -> "-DSSL39\n".
+-else.
+ssldef() -> "\n".
+-endif.
+
%% return physical architecture based on OS/Processor
archname() ->
ArchStr = erlang:system_info(system_architecture),
@@ -154,33 +161,36 @@ libpath(App) ->
%% ({error, enoent}):
_Error -> code:lib_dir("erl_interface") ++ "/lib"
end.
-
+
_EOF
-
+
if ! $ERLC conftest.erl; then
AC_MSG_ERROR([could not compile sample program])
fi
-
+
if ! $ERL -s conftest -noshell; then
AC_MSG_ERROR([could not run sample program])
fi
-
+
if ! test -f conftest.out; then
AC_MSG_ERROR([erlang program was not properly executed, (conftest.out was not produced)])
fi
-
+
# First line
ERLANG_EI_DIR=`cat conftest.out | head -n 1`
# Second line
ERLANG_EI_LIB=`cat conftest.out | head -n 2 | tail -n 1`
# Third line
+ ERLANG_SSL39=`cat conftest.out | head -n 3 | tail -n 1`
+ # End line
ERLANG_DIR=`cat conftest.out | tail -n 1`
-
+
ERLANG_CFLAGS="-I$ERLANG_EI_DIR/include -I$ERLANG_DIR/usr/include"
ERLANG_LIBS="-L$ERLANG_EI_LIB -lerl_interface -lei"
-
+
AC_SUBST(ERLANG_CFLAGS)
AC_SUBST(ERLANG_LIBS)
+ AC_SUBST(ERLANG_SSL39)
AC_SUBST(ERLC)
AC_SUBST(ERL)
])
@@ -262,7 +272,7 @@ AC_DEFUN([AM_ICONV],
CFLAGS="$am_save_CFLAGS")
LIBS="$am_save_LIBS"
fi
-
+
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
diff --git a/src/configure b/src/configure
index c6263ecf4..39fe6b559 100755
--- a/src/configure
+++ b/src/configure
@@ -663,6 +663,7 @@ ERLC
ERL
ERLANG_CFLAGS
ERLANG_LIBS
+ERLANG_SSL39
LIBICONV
CPP
GREP
@@ -2924,14 +2925,21 @@ echo "$as_me: error: erlang not found" >&2;}
-author('alexey@sevcom.net').
-export([start/0]).
+-include_lib("ssl/include/ssl_pkix.hrl").
start() ->
EIDirS = code:lib_dir("erl_interface") ++ "\n",
EILibS = libpath("erl_interface") ++ "\n",
RootDirS = code:root_dir() ++ "\n",
- file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ RootDirS)),
+ file:write_file("conftest.out", list_to_binary(EIDirS ++ EILibS ++ ssldef() ++ RootDirS)),
halt().
+-ifdef('id-pkix').
+ssldef() -> "-DSSL39\n".
+-else.
+ssldef() -> "\n".
+-endif.
+
%% return physical architecture based on OS/Processor
archname() ->
ArchStr = erlang:system_info(system_architecture),
@@ -2986,6 +2994,8 @@ echo "$as_me: error: erlang program was not properly executed, (conftest.out was
# Second line
ERLANG_EI_LIB=`cat conftest.out | head -n 2 | tail -n 1`
# Third line
+ ERLANG_SSL39=`cat conftest.out | head -n 3 | tail -n 1`
+ # End line
ERLANG_DIR=`cat conftest.out | tail -n 1`
ERLANG_CFLAGS="-I$ERLANG_EI_DIR/include -I$ERLANG_DIR/usr/include"
@@ -2996,6 +3006,7 @@ echo "$as_me: error: erlang program was not properly executed, (conftest.out was
+
#locating iconv
@@ -6530,6 +6541,7 @@ ERLC!$ERLC$ac_delim
ERL!$ERL$ac_delim
ERLANG_CFLAGS!$ERLANG_CFLAGS$ac_delim
ERLANG_LIBS!$ERLANG_LIBS$ac_delim
+ERLANG_SSL39!$ERLANG_SSL39$ac_delim
LIBICONV!$LIBICONV$ac_delim
CPP!$CPP$ac_delim
GREP!$GREP$ac_delim
@@ -6571,7 +6583,7 @@ SSL_CFLAGS!$SSL_CFLAGS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 88; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 89; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -6898,3 +6910,12 @@ if test "$no_create" != yes; then
$ac_cs_success || { (exit 1); exit 1; }
fi
+
+if test -n "$ERLANG_SSL39" ; then
+ echo
+ echo "**************** WARNING ! ********************"
+ echo "ejabberd will be compiled with Erlang R12."
+ echo "This version of Erlang is not supported"
+ echo "and not recommended for production servers"
+ echo "***********************************************"
+fi
diff --git a/src/configure.ac b/src/configure.ac
index a3e8894e9..bc89e67e9 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -120,3 +120,12 @@ fi
AC_CHECK_HEADER(krb5.h,,)
AC_OUTPUT
+
+if test -n "$ERLANG_SSL39" ; then
+ echo
+ echo "**************** WARNING ! ********************"
+ echo "ejabberd will be compiled with Erlang R12."
+ echo "This version of Erlang is not supported"
+ echo "and not recommended for production servers"
+ echo "***********************************************"
+fi
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
index 8527ec2b1..80c3d63d5 100644
--- a/src/ejabberd_s2s_in.erl
+++ b/src/ejabberd_s2s_in.erl
@@ -48,8 +48,12 @@
-include("ejabberd.hrl").
-include("jlib.hrl").
+-ifdef(SSL39).
+-include_lib("ssl/include/ssl_pkix.hrl").
+-else.
-include_lib("ssl/include/PKIX1Explicit88.hrl").
-include_lib("ssl/include/PKIX1Implicit88.hrl").
+-endif.
-include("XmppAddr.hrl").
-define(DICT, dict).