summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2010-08-09 08:21:28 +0000
committerPeter Volkov <pva@gentoo.org>2010-08-09 08:21:28 +0000
commit2d59213127b8d6dedda2e30c9d026dbf7e0647ab (patch)
tree7fd529836063f7267fd6d7081f2e8145ee0412cf /net-im
parentx86 stable, bug 322791 (diff)
downloadhistorical-2d59213127b8d6dedda2e30c9d026dbf7e0647ab.tar.gz
historical-2d59213127b8d6dedda2e30c9d026dbf7e0647ab.tar.bz2
historical-2d59213127b8d6dedda2e30c9d026dbf7e0647ab.zip
Fix openssl breakage due to missed md2 support, bug 331299, thank Rion for report and Samuli Suominen for quick fix.
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64
Diffstat (limited to 'net-im')
-rw-r--r--net-im/ejabberd/ChangeLog7
-rw-r--r--net-im/ejabberd/Manifest5
-rw-r--r--net-im/ejabberd/ejabberd-2.1.5.ebuild5
-rw-r--r--net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch259
4 files changed, 271 insertions, 5 deletions
diff --git a/net-im/ejabberd/ChangeLog b/net-im/ejabberd/ChangeLog
index 6485a5fe39b0..14be54949046 100644
--- a/net-im/ejabberd/ChangeLog
+++ b/net-im/ejabberd/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for net-im/ejabberd
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ChangeLog,v 1.83 2010/08/05 10:41:17 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ChangeLog,v 1.84 2010/08/09 08:21:28 pva Exp $
+
+ 09 Aug 2010; Peter Volkov <pva@gentoo.org> ejabberd-2.1.5.ebuild,
+ +files/ejabberd-2.1.5-md2-optional.patch:
+ Fix openssl breakage due to missed md2 support, bug 331299, thank Rion for
+ report and Samuli Suominen for quick fix.
*ejabberd-2.1.5 (05 Aug 2010)
diff --git a/net-im/ejabberd/Manifest b/net-im/ejabberd/Manifest
index 81f8ba2c2ea6..dbfee9834f2c 100644
--- a/net-im/ejabberd/Manifest
+++ b/net-im/ejabberd/Manifest
@@ -1,5 +1,6 @@
AUX ejabberd-2.0.5-erlang-13.patch 16877 RMD160 4b8924f5b37de85823dec539523e7800c394bc7c SHA1 663ffc03f29613d695589c199222bc0382a24c76 SHA256 3d5cb7c163647580e1776a4e31ca3f8e03b1b411288b8273c861d17db5fa1e4a
AUX ejabberd-2.1.4-mod_shared_roster_ldap.patch 418 RMD160 a810f3b5c23e5985aed699a68e32c749494e021d SHA1 4276671d435c04ab00ec7b6e2d5f0acb58845753 SHA256 72fb86c7be4a62518f0de7a42b77ea4ba3cf858247636a34b3f267862e1dc624
+AUX ejabberd-2.1.5-md2-optional.patch 6794 RMD160 0194fcb2b9e8add51256355d4a4c9548eb8eb031 SHA1 acde0e849cb626d0ba9184aaf9e995c9a06bd625 SHA256 c3414cf40f17f73dbf21f67b9ccb4e7d84b14a634848cf36960f3b51e21d0c9a
AUX ejabberd-2.confd 834 RMD160 7beb5337d15b33d4b1d802edb03995cddb73e162 SHA1 53e754dcbd03edb27f9982f51323e355dafd1f73 SHA256 c48f5cb90c409bde333d5d7a6159995bbf02e265c9d06528c1ec35b764ca9f21
AUX ejabberd-2.initd 1126 RMD160 8c696768e686efdc9865446ce5a3fbb2ae7302f6 SHA1 27c6b2fd8e1ff6b74d83688d9d68e8721aa0580e SHA256 9b6f076c452a8db149b689db12082fade95e1975a76e52a67a942220ee99aa2f
AUX ejabberd-3.confd 161 RMD160 3b2c2b2a871c42c75e854a3c592c0d399a5dd387 SHA1 01e72bda178e7bf26a66321c4330bbcc1607e540 SHA256 0296d3d281a321cd7380772c1d89a94e4a86f85b7f43bf9dc1af74935c2e6386
@@ -15,6 +16,6 @@ DIST ejabberd-2.1.5.tar.gz 2278008 RMD160 7abd6bc4a03f68d03e13ee8c1ff3a5fee6098d
DIST mod_shared_roster_ldap-0.5.1.tgz 607758 RMD160 5669a3d16fbca4d399e85a7d0dfda71643e6e2c7 SHA1 a9498d26e17752b882b3341b633d1804075d74ef SHA256 60e4ba0921d1ac65f9cca04fa2a7a3bbe3a9af52a26ad1a4fca4a3c6f1f0cc19
EBUILD ejabberd-2.0.5-r3.ebuild 4909 RMD160 8b51c5bfba1ba99e29a5462f6c3ca93465685bfd SHA1 dffb83ae90b6f71a09a36eef1340f06bd597049e SHA256 4605b2d9a73ee4a7abe17f57ed2dfbbc27e8142bb8ad5f96d201e27b7076c678
EBUILD ejabberd-2.1.4.ebuild 8392 RMD160 d0cf3a6cfc82e5ab6351c49a3f0b61399863b0d7 SHA1 3feb114bdb65f1ba9539095be533c55ca235fd55 SHA256 043e1f9a7d13f652de7db65162c70e5a5cca98934b8950163bb0528851d4db30
-EBUILD ejabberd-2.1.5.ebuild 8322 RMD160 4c45560f215654701db1cf18a79ab42c8edc81df SHA1 832a8e9aa1e51b7f336ee20478cd3ba8c537b329 SHA256 f0bf587288b9f0a9e041bc3997276651047516607905dfe934c4ab16557bef60
-MISC ChangeLog 17426 RMD160 32325d8322b4a4c412381675b079c9fd54c1134a SHA1 51803ff2e7f3f80fb60ff48d4cd83bc9b1da3569 SHA256 3093dc5345a3afa2d8140b538c0a143c88389bd0bb27518e271022a5796bbe1f
+EBUILD ejabberd-2.1.5.ebuild 8374 RMD160 ec4746817be901804b5603cb388ef7ce9cc706ed SHA1 f735ea63d287b35306878db8092b5d2c6aa2349f SHA256 f0a2fd0e5da4306a8be7f8254f5d77dfadc872cb818d8c0202366fbd16ce188f
+MISC ChangeLog 17660 RMD160 289ac844d73808534ea98163280bc7a332e5c406 SHA1 323f46e9edde1e6d5b9282284fa206fe12a3373c SHA256 a2304dfd57d4e0b3b92ac9a2e104d861f420c1efeb09829c1e3f9123e543b6c6
MISC metadata.xml 929 RMD160 3a456c8945da34e417ca2fb659807a280b834f85 SHA1 a7b3173f8b63655c049881629e1354c71ddd633e SHA256 4d46909fd72908dff8698bb9dfcf60132e973b28eabbfe75001397ed349ff11b
diff --git a/net-im/ejabberd/ejabberd-2.1.5.ebuild b/net-im/ejabberd/ejabberd-2.1.5.ebuild
index b29527c780e5..5b7979904372 100644
--- a/net-im/ejabberd/ejabberd-2.1.5.ebuild
+++ b/net-im/ejabberd/ejabberd-2.1.5.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.1.5.ebuild,v 1.1 2010/08/05 10:41:17 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.1.5.ebuild,v 1.2 2010/08/09 08:21:28 pva Exp $
EAPI=3
@@ -14,7 +14,7 @@ SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~ia64 ~ppc ~sparc x86"
EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_srl mod_statsdx"
IUSE="captcha debug ldap odbc pam +web zlib ${EJABBERD_MODULES}"
@@ -42,6 +42,7 @@ JABBER_LOG="${EPREFIX}/var/log/jabber"
JABBER_DOC="${EPREFIX}/usr/share/doc/${PF}"
src_prepare() {
+ epatch "${FILESDIR}/${P}-md2-optional.patch" #331299
if use mod_statsdx; then
ewarn "mod_statsdx is not a part of upstream tarball but is a third-party module"
ewarn "taken from here: http://www.ejabberd.im/mod_stats2file"
diff --git a/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch b/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch
new file mode 100644
index 000000000000..e11cad3b7d12
--- /dev/null
+++ b/net-im/ejabberd/files/ejabberd-2.1.5-md2-optional.patch
@@ -0,0 +1,259 @@
+commit d2d8a09b4afdb5f77b903411ff16fbb0b739d3e4
+Author: Evgeniy Khramtsov <ekhramtsov@process-one.net>
+Date: Sat Aug 7 22:04:57 2010 +1000
+
+ Make MD2 autodetected (EJAB-1285)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 7d225f3..4e56181 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -64,6 +64,11 @@ ifeq (@transient_supervisors@, false)
+ EFLAGS+=-DNO_TRANSIENT_SUPERVISORS
+ endif
+
++ifeq (@md2@, true)
++ EFLAGS+=-DHAVE_MD2
++ ERLANG_CFLAGS += -DHAVE_MD2
++endif
++
+ INSTALL_EPAM=
+ ifeq (@pam@, pam)
+ INSTALL_EPAM=install -m 750 $(O_USER) epam $(PBINDIR)
+diff --git a/src/configure.ac b/src/configure.ac
+index 1497643..1d25dd8 100644
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -148,6 +148,9 @@ if test "$ENABLEUSER" != ""; then
+ AC_SUBST([INSTALLUSER], [$ENABLEUSER])
+ fi
+
++AC_CHECK_HEADER(openssl/md2.h, md2=true, md2=false)
++AC_SUBST(md2)
++
+ AC_CANONICAL_SYSTEM
+ #AC_DEFINE_UNQUOTED(CPU_VENDOR_OS, "$target")
+ #AC_SUBST(target_os)
+diff --git a/src/mod_caps.erl b/src/mod_caps.erl
+index 7fb011e..d9f4f30 100644
+--- a/src/mod_caps.erl
++++ b/src/mod_caps.erl
+@@ -276,25 +276,8 @@ feature_response(#iq{type = result,
+ sub_el = [{xmlelement, _, _, Els}]},
+ Host, From, Caps, [SubNode | SubNodes]) ->
+ BinaryNode = node_to_binary(Caps#caps.node, SubNode),
+- IsValid = case Caps#caps.hash of
+- "md2" ->
+- Caps#caps.version == make_disco_hash(Els, md2);
+- "md5" ->
+- Caps#caps.version == make_disco_hash(Els, md5);
+- "sha-1" ->
+- Caps#caps.version == make_disco_hash(Els, sha1);
+- "sha-224" ->
+- Caps#caps.version == make_disco_hash(Els, sha224);
+- "sha-256" ->
+- Caps#caps.version == make_disco_hash(Els, sha256);
+- "sha-384" ->
+- Caps#caps.version == make_disco_hash(Els, sha384);
+- "sha-512" ->
+- Caps#caps.version == make_disco_hash(Els, sha512);
+- _ ->
+- true
+- end,
+- if IsValid ->
++ case check_hash(Caps, Els) of
++ true ->
+ Features = lists:flatmap(
+ fun({xmlelement, "feature", FAttrs, _}) ->
+ [xml:get_attr_s("var", FAttrs)];
+@@ -304,7 +287,7 @@ feature_response(#iq{type = result,
+ mnesia:dirty_write(
+ #caps_features{node_pair = BinaryNode,
+ features = features_to_binary(Features)});
+- true ->
++ false ->
+ mnesia:dirty_write(#caps_features{node_pair = BinaryNode})
+ end,
+ feature_request(Host, From, Caps, SubNodes);
+@@ -349,6 +332,7 @@ make_my_disco_hash(Host) ->
+ ""
+ end.
+
++-ifdef(HAVE_MD2).
+ make_disco_hash(DiscoEls, Algo) ->
+ Concat = [concat_identities(DiscoEls),
+ concat_features(DiscoEls),
+@@ -370,6 +354,64 @@ make_disco_hash(DiscoEls, Algo) ->
+ sha:sha512(Concat)
+ end).
+
++check_hash(Caps, Els) ->
++ case Caps#caps.hash of
++ "md2" ->
++ Caps#caps.version == make_disco_hash(Els, md2);
++ "md5" ->
++ Caps#caps.version == make_disco_hash(Els, md5);
++ "sha-1" ->
++ Caps#caps.version == make_disco_hash(Els, sha1);
++ "sha-224" ->
++ Caps#caps.version == make_disco_hash(Els, sha224);
++ "sha-256" ->
++ Caps#caps.version == make_disco_hash(Els, sha256);
++ "sha-384" ->
++ Caps#caps.version == make_disco_hash(Els, sha384);
++ "sha-512" ->
++ Caps#caps.version == make_disco_hash(Els, sha512);
++ _ ->
++ true
++ end.
++-else.
++make_disco_hash(DiscoEls, Algo) ->
++ Concat = [concat_identities(DiscoEls),
++ concat_features(DiscoEls),
++ concat_info(DiscoEls)],
++ base64:encode_to_string(
++ if Algo == md5 ->
++ crypto:md5(Concat);
++ Algo == sha1 ->
++ crypto:sha(Concat);
++ Algo == sha224 ->
++ sha:sha224(Concat);
++ Algo == sha256 ->
++ sha:sha256(Concat);
++ Algo == sha384 ->
++ sha:sha384(Concat);
++ Algo == sha512 ->
++ sha:sha512(Concat)
++ end).
++
++check_hash(Caps, Els) ->
++ case Caps#caps.hash of
++ "md5" ->
++ Caps#caps.version == make_disco_hash(Els, md5);
++ "sha-1" ->
++ Caps#caps.version == make_disco_hash(Els, sha1);
++ "sha-224" ->
++ Caps#caps.version == make_disco_hash(Els, sha224);
++ "sha-256" ->
++ Caps#caps.version == make_disco_hash(Els, sha256);
++ "sha-384" ->
++ Caps#caps.version == make_disco_hash(Els, sha384);
++ "sha-512" ->
++ Caps#caps.version == make_disco_hash(Els, sha512);
++ _ ->
++ true
++ end.
++-endif.
++
+ concat_features(Els) ->
+ lists:usort(
+ lists:flatmap(
+diff --git a/src/sha.erl b/src/sha.erl
+index 64c15c1..06dd3c2 100644
+--- a/src/sha.erl
++++ b/src/sha.erl
+@@ -28,7 +28,11 @@
+ -author('alexey@process-one.net').
+
+ -export([start/0, sha/1, sha1/1, sha224/1, sha256/1, sha384/1,
+- sha512/1, md2/1]).
++ sha512/1]).
++
++-ifdef(HAVE_MD2).
++-export([md2/1]).
++-endif.
+
+ -include("ejabberd.hrl").
+
+@@ -80,8 +84,10 @@ sha384(Text) ->
+ sha512(Text) ->
+ erlang:port_control(?DRIVER, 512, Text).
+
++-ifdef(HAVE_MD2).
+ md2(Text) ->
+ erlang:port_control(?DRIVER, 2, Text).
++-endif.
+
+ driver_path() ->
+ Suffix = case os:type() of
+diff --git a/src/tls/Makefile.in b/src/tls/Makefile.in
+index 4458796..ee40f93 100644
+--- a/src/tls/Makefile.in
++++ b/src/tls/Makefile.in
+@@ -30,6 +30,11 @@ ifdef debug
+ EFLAGS+=+debug_info +export_all
+ endif
+
++ifeq (@md2@, true)
++ EFLAGS+=-DHAVE_MD2
++ ERLANG_CFLAGS += -DHAVE_MD2
++endif
++
+ ERLSHLIBS = ../tls_drv.so ../sha_drv.so
+ OUTDIR = ..
+ SOURCES = $(wildcard *.erl)
+diff --git a/src/tls/sha_drv.c b/src/tls/sha_drv.c
+index 13d6580..8e6de32 100644
+--- a/src/tls/sha_drv.c
++++ b/src/tls/sha_drv.c
+@@ -20,7 +20,9 @@
+
+ #include <erl_driver.h>
+ #include <openssl/sha.h>
++#ifdef HAVE_MD2
+ #include <openssl/md2.h>
++#endif
+
+ static ErlDrvData sha_drv_start(ErlDrvPort port, char *buf)
+ {
+@@ -36,11 +38,13 @@ static int sha_drv_control(ErlDrvData handle,
+ ErlDrvBinary *b = NULL;
+
+ switch (command) {
++#ifdef HAVE_MD2
+ case 2:
+ rlen = MD2_DIGEST_LENGTH;
+ b = driver_alloc_binary(rlen);
+ if (b) MD2((unsigned char*)buf, len, (unsigned char*)b->orig_bytes);
+ break;
++#endif
+ case 224:
+ rlen = SHA224_DIGEST_LENGTH;
+ b = driver_alloc_binary(rlen);
+
+
+commit b14899d41ae8f0d3e750ba42e297ea5815bf30c1
+Author: Badlop <badlop@process-one.net>
+Date: Sat Aug 7 19:42:56 2010 +0200
+
+ Update the 'configure' script
+
+diff --git a/src/configure b/src/configure
+index 2d44646..d515abc 100755
+--- a/src/configure
++++ b/src/configure
+@@ -608,6 +608,7 @@ build_os
+ build_vendor
+ build_cpu
+ build
++md2
+ INSTALLUSER
+ SSL_CFLAGS
+ SSL_LIBS
+@@ -4822,6 +4823,16 @@ if test "$ENABLEUSER" != ""; then
+
+ fi
+
++ac_fn_c_check_header_mongrel "$LINENO" "openssl/md2.h" "ac_cv_header_openssl_md2_h" "$ac_includes_default"
++if test "x$ac_cv_header_openssl_md2_h" = x""yes; then :
++ md2=true
++else
++ md2=false
++fi
++
++
++
++
+ ac_aux_dir=
+ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do