From 41392e6e354c8294b0de80750616d103c11eca15 Mon Sep 17 00:00:00 2001 From: fhajny Date: Tue, 1 Sep 2015 11:36:59 +0000 Subject: Update chat/ejabberd to 15.07. Message Archive Management (XEP-0313) - Add "complete" attribute to MAM final response - Fix mod_mam compatibility with RSM - Changed mam iq get to set as specified by XEP-0313 v0.3 Modules management - Ensure config snippet is loaded at module installation - Allow contribution to include .yml or .yaml config file - Allow include of simple dependencies Multi User Chat - New API hook: muc_filter_packet - Send notifications on MUC configuration changes - Omit warning message regarding non-anonymous room - During halt only shutdown MUC rooms on local node Pubsub - Allow migration of old pubsub items with old xmlelement structure in body - Trigger PEP notifications on CAPS updates - Check for node subscription of bare JID - Flat is now the default plugin Stream Management (XEP-0198) - Increase timeout during resumption - Increase default "max_ack_queue" value ejabberd Client connection - API change: user_send_packet is now a run_fold hook and pass the c2s State as a parameter. It was already the case in ejabberd 15.06, but it was not mentioned in the changelog, by mistake. So, now, you know :) Admin - Do not rely on behaviour info when doing config validation, so that it can work with ejabberd binary installers - When passwords are scrammed, report check_password_hash cannot work - Fix problem with merging values from multiple config files - If local guide.html file not found, redirect to the online guide - Support RTL page direction in WebAdmin for Hebrew - configure.ac: add AC_CONFIG_MACRO_DIR and static AC_INIT WebAdmin - Don't crash web admin when displaying info about websocket using users Installers --- chat/ejabberd/Makefile | 5 +- chat/ejabberd/PLIST | 6 +- chat/ejabberd/distinfo | 16 ++- chat/ejabberd/patches/patch-erlang17 | 104 ------------------ chat/ejabberd/patches/patch-erlang18 | 203 ----------------------------------- 5 files changed, 11 insertions(+), 323 deletions(-) delete mode 100644 chat/ejabberd/patches/patch-erlang17 delete mode 100644 chat/ejabberd/patches/patch-erlang18 (limited to 'chat/ejabberd') diff --git a/chat/ejabberd/Makefile b/chat/ejabberd/Makefile index 232beb77f90..e042806c495 100644 --- a/chat/ejabberd/Makefile +++ b/chat/ejabberd/Makefile @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.56 2015/07/17 14:25:42 fhajny Exp $ +# $NetBSD: Makefile,v 1.57 2015/09/01 11:36:59 fhajny Exp $ -DISTNAME= ejabberd-15.06 -PKGREVISION= 1 +DISTNAME= ejabberd-15.07 CATEGORIES= chat MASTER_SITES= http://www.process-one.net/downloads/ejabberd/${PKGVERSION_NOREV}/ EXTRACT_SUFX= .tgz diff --git a/chat/ejabberd/PLIST b/chat/ejabberd/PLIST index d6329b02c37..c4320ccea3e 100644 --- a/chat/ejabberd/PLIST +++ b/chat/ejabberd/PLIST @@ -1,9 +1,8 @@ -@comment $NetBSD: PLIST,v 1.33 2015/06/29 21:44:10 fhajny Exp $ +@comment $NetBSD: PLIST,v 1.34 2015/09/01 11:36:59 fhajny Exp $ lib/erlang/lib/${PKGNAME}/ebin/ELDAPv3.beam lib/erlang/lib/${PKGNAME}/ebin/XmppAddr.beam lib/erlang/lib/${PKGNAME}/ebin/acl.beam lib/erlang/lib/${PKGNAME}/ebin/adhoc.beam -lib/erlang/lib/${PKGNAME}/ebin/bitmap.beam lib/erlang/lib/${PKGNAME}/ebin/cache_tab.beam lib/erlang/lib/${PKGNAME}/ebin/cache_tab_app.beam lib/erlang/lib/${PKGNAME}/ebin/cache_tab_sup.beam @@ -12,8 +11,6 @@ lib/erlang/lib/${PKGNAME}/ebin/cyrsasl_anonymous.beam lib/erlang/lib/${PKGNAME}/ebin/cyrsasl_digest.beam lib/erlang/lib/${PKGNAME}/ebin/cyrsasl_plain.beam lib/erlang/lib/${PKGNAME}/ebin/cyrsasl_scram.beam -lib/erlang/lib/${PKGNAME}/ebin/ehyperloglog.app -lib/erlang/lib/${PKGNAME}/ebin/ehyperloglog.beam lib/erlang/lib/${PKGNAME}/ebin/ejabberd.app lib/erlang/lib/${PKGNAME}/ebin/ejabberd.beam lib/erlang/lib/${PKGNAME}/ebin/ejabberd_admin.beam @@ -348,6 +345,7 @@ lib/erlang/lib/${PKGNAME}/priv/msgs/zh.msg lib/erlang/lib/${PKGNAME}/priv/sql/lite.sql sbin/ejabberdctl share/doc/ejabberd/COPYING +share/doc/ejabberd/guide.html share/examples/ejabberd/ejabberd.yml share/examples/ejabberd/ejabberdctl.cfg share/examples/ejabberd/inetrc diff --git a/chat/ejabberd/distinfo b/chat/ejabberd/distinfo index 1ef4b70e2e0..975f5d16ced 100644 --- a/chat/ejabberd/distinfo +++ b/chat/ejabberd/distinfo @@ -1,14 +1,12 @@ -$NetBSD: distinfo,v 1.35 2015/07/17 14:25:42 fhajny Exp $ +$NetBSD: distinfo,v 1.36 2015/09/01 11:36:59 fhajny Exp $ -SHA1 (ejabberd-15.06-deps.tar.gz) = b3704208c5756c7c717477b9c66e7f5853b6d91e -RMD160 (ejabberd-15.06-deps.tar.gz) = 3ae7d5d31befe7717322253d7692bc3b33172042 -Size (ejabberd-15.06-deps.tar.gz) = 14294458 bytes -SHA1 (ejabberd-15.06.tgz) = 7e3f050f1c27cfe9941440572374c8fa80fca0d7 -RMD160 (ejabberd-15.06.tgz) = ab352af31f929852428a137c49b662e6bff07733 -Size (ejabberd-15.06.tgz) = 1560640 bytes +SHA1 (ejabberd-15.07-deps.tar.gz) = 19019c87abf4187dc823a409078d791a580377c3 +RMD160 (ejabberd-15.07-deps.tar.gz) = 63171aa661ca0afb43a6887ffd7b644c5aa9c418 +Size (ejabberd-15.07-deps.tar.gz) = 15110194 bytes +SHA1 (ejabberd-15.07.tgz) = 7b80ac2f0f269673c2742079fb8cb08cfcbca70b +RMD160 (ejabberd-15.07.tgz) = b51d63c5ff6685148d5fc48860a91b8edce92b98 +Size (ejabberd-15.07.tgz) = 1640947 bytes SHA1 (patch-aa) = 5025927e6be5792fa8e59541938950d901b91ee5 SHA1 (patch-ad) = cdd7a61333f3206ac3ae9168b1878a059da25988 SHA1 (patch-ae) = a9340add286fe4b70ce0ac6b75a2f9162b8c4e7d SHA1 (patch-configure) = 8cf03f571ef13ed825b445e0f1664d387895b8fe -SHA1 (patch-erlang17) = c01196a914d2be84f1639d64e83fe1a12e52f7ee -SHA1 (patch-erlang18) = 80e9a83bfa5e6264231088df4ec8e7a1c0cc277f diff --git a/chat/ejabberd/patches/patch-erlang17 b/chat/ejabberd/patches/patch-erlang17 deleted file mode 100644 index fbe9510d110..00000000000 --- a/chat/ejabberd/patches/patch-erlang17 +++ /dev/null @@ -1,104 +0,0 @@ -$NetBSD: patch-erlang17,v 1.1 2015/07/17 14:25:42 fhajny Exp $ - -Patch to build with Erlang 17/18 based on FreeBSD ports. - -https://svnweb.freebsd.org/ports/head/net-im/ejabberd/files/patch-erlang-17-dict-queue?revision=390878&view=co - ---- ../deps/esip/src/esip_listener.erl.orig -+++ ../deps/esip/src/esip_listener.erl -@@ -37,7 +37,11 @@ - - -include("esip_lib.hrl"). - -define(TCP_SEND_TIMEOUT, 10000). -+-ifdef(ERLANG_17). -+-record(state, {listeners = dict:new() :: dict:dict()}). -+-else. - -record(state, {listeners = dict:new() :: dict()}). -+-endif. - - %%%=================================================================== - %%% API - -$FreeBSD$ - ---- ../deps/esip/rebar.config.orig -+++ ../deps/esip/rebar.config -@@ -1,4 +1,5 @@ --{erl_opts, [{i, "include"}, -+{erl_opts, [{platform_define, "^1[78]-", 'ERLANG_17'}, -+ {i, "include"}, - {i, "deps/p1_stun/include"}, - {i, "../p1_stun/include"}]}. - - -$FreeBSD$ - ---- ../deps/p1_stun/src/turn.erl.orig -+++ ../deps/p1_stun/src/turn.erl -@@ -56,6 +56,29 @@ - - -type addr() :: {inet:ip_address(), inet:port_number()}. - -+-ifdef(ERLANG_17). -+-record(state, -+ {sock_mod = gen_udp :: gen_udp | gen_tcp | p1_tls, -+ sock :: inet:socket() | p1_tls:tls_socket(), -+ addr = {{0,0,0,0}, 0} :: addr(), -+ owner = self() :: pid(), -+ username = <<"">> :: binary(), -+ realm = <<"">> :: binary(), -+ key = {<<"">>, <<"">>, <<"">>} :: {binary(), binary(), binary()}, -+ server_name = <<"">> :: binary(), -+ permissions = ?DICT:new() :: dict:dict(), -+ channels = ?DICT:new() :: dict:dict(), -+ max_permissions :: non_neg_integer() | atom(), -+ relay_ip = {127,0,0,1} :: inet:ip_address(), -+ min_port = 49152 :: non_neg_integer(), -+ max_port = 65535 :: non_neg_integer(), -+ relay_addr :: addr(), -+ relay_sock :: inet:socket(), -+ last_trid :: non_neg_integer(), -+ last_pkt = <<>> :: binary(), -+ seq = 1 :: non_neg_integer(), -+ life_timer :: reference()}). -+-else. - -record(state, - {sock_mod = gen_udp :: gen_udp | gen_tcp | p1_tls, - sock :: inet:socket() | p1_tls:tls_socket(), -@@ -77,6 +100,7 @@ - last_pkt = <<>> :: binary(), - seq = 1 :: non_neg_integer(), - life_timer :: reference()}). -+-endif. - - %%==================================================================== - %% API - -$FreeBSD$ - ---- ../deps/p1_stun/rebar.config.orig -+++ ../deps/p1_stun/rebar.config -@@ -1,4 +1,5 @@ --{erl_opts, [debug_info, {i, "include"}]}. -+{erl_opts, [{platform_define, "^1[78]-", 'ERLANG_17'}, -+ debug_info, {i, "include"}]}. - - {deps, [{p1_tls, ".*", {git, "git://github.com/processone/tls.git"}}, - {p1_utils, ".*", {git, "git://github.com/processone/p1_utils.git"}}]}. - -$FreeBSD$ - ---- ../deps/p1_stun/src/stun_listener.erl.orig -+++ ../deps/p1_stun/src/stun_listener.erl -@@ -36,7 +36,11 @@ - terminate/2, code_change/3]). - - -define(TCP_SEND_TIMEOUT, 10000). -+-ifdef(ERLANG_17). -+-record(state, {listeners = dict:new() :: dict:dict()}). -+-else. - -record(state, {listeners = dict:new() :: dict()}). -+-endif. - - %%%=================================================================== - %%% API diff --git a/chat/ejabberd/patches/patch-erlang18 b/chat/ejabberd/patches/patch-erlang18 deleted file mode 100644 index 0bb4c0accee..00000000000 --- a/chat/ejabberd/patches/patch-erlang18 +++ /dev/null @@ -1,203 +0,0 @@ -$NetBSD: patch-erlang18,v 1.1 2015/07/17 14:25:42 fhajny Exp $ - -Patch to build with Erlang 18 based on FreeBSD ports. - -https://svnweb.freebsd.org/ports/head/net-im/ejabberd/files/patch-erlang-18 - -diff -ruN --exclude '*.orig' ../deps/esip/src/esip.erl ../deps/esip/src/esip.erl ---- ../deps/esip/src/esip.erl 2015-01-14 12:52:19.000000000 +0100 -+++ ../deps/esip/src/esip.erl 2015-06-25 10:20:59.000000000 +0200 -@@ -739,7 +739,7 @@ - %% gen_server callbacks - %%==================================================================== - init([]) -> -- {A, B, C} = now(), -+ {A, B, C} = erlang:timestamp(), - random:seed(A, B, C), - ets:new(esip_config, [named_table, public]), - set_config([]), -diff -ruN --exclude '*.orig' ../deps/esip/src/esip_codec.erl ../deps/esip/src/esip_codec.erl ---- ../deps/esip/src/esip_codec.erl 2015-01-14 12:52:19.000000000 +0100 -+++ ../deps/esip/src/esip_codec.erl 2015-06-25 10:21:17.000000000 +0200 -@@ -1334,10 +1334,10 @@ - io:format("~n== Estimate: ~p~n", [T div N]). - - test_loop(P, Msg, N) -> -- test_loop(P, Msg, N, now()). -+ test_loop(P, Msg, N, erlang:timestamp()). - - test_loop(P, _, 0, T) -> -- P ! {ok, timer:now_diff(now(), T)}; -+ P ! {ok, timer:now_diff(erlang:timestamp(), T)}; - test_loop(P, Msg, N, T) -> - decode(Msg), - test_loop(P, Msg, N-1, T). -diff -ruN --exclude '*.orig' ../deps/esip/src/esip_transaction.erl ../deps/esip/src/esip_transaction.erl ---- ../deps/esip/src/esip_transaction.erl 2015-01-14 12:52:19.000000000 +0100 -+++ ../deps/esip/src/esip_transaction.erl 2015-06-25 10:20:38.000000000 +0200 -@@ -205,9 +205,9 @@ - maybe_report_error(Type, N) -> - case ets:lookup(?MODULE, {last_error_report, Type}) of - [{_, Now}] -> -- case timer:now_diff(now(), Now) of -+ case timer:now_diff(erlang:timestamp(), Now) of - T when T > 60000000 -> -- ets:insert(?MODULE, {{last_error_report, Type}, now()}), -+ ets:insert(?MODULE, {{last_error_report, Type}, erlang:timestamp()}), - ?ERROR_MSG("too many ~s transactions: ~p", [Type, N]); - _ -> - ok -diff -ruN --exclude '*.orig' ../deps/p1_cache_tab/src/cache_tab.erl ../deps/p1_cache_tab/src/cache_tab.erl ---- ../deps/p1_cache_tab/src/cache_tab.erl 2015-01-14 12:52:24.000000000 +0100 -+++ ../deps/p1_cache_tab/src/cache_tab.erl 2015-06-25 10:22:59.000000000 +0200 -@@ -405,7 +405,7 @@ - [get_proc(Tab, N) || N <- lists:seq(1, get_proc_num())]. - - now_priority() -> -- {MSec, Sec, USec} = now(), -+ {MSec, Sec, USec} = erlang:timestamp(), - -((MSec*1000000 + Sec)*1000000 + USec). - - clean_priority(LifeTime) -> -@@ -594,20 +594,20 @@ - test3(Iter) -> - ok = new(test_tbl, [{max_size, unlimited}, {life_time, unlimited}]), - L = lists:seq(1, Iter), -- T1 = now(), -+ T1 = erlang:timestamp(), - lists:foreach( - fun(N) -> - ok = ?insert(test_tbl, N, N, fun() -> ok end) - end, L), - io:format("** average insert (size = ~p): ~p usec~n", -- [Iter, round(timer:now_diff(now(), T1)/Iter)]), -- T2 = now(), -+ [Iter, round(timer:now_diff(erlang:timestamp(), T1)/Iter)]), -+ T2 = erlang:timestamp(), - lists:foreach( - fun(N) -> - {ok, N} = ?lookup(test_tbl, N, fun() -> ok end) - end, L), - io:format("** average lookup (size = ~p): ~p usec~n", -- [Iter, round(timer:now_diff(now(), T2)/Iter)]), -+ [Iter, round(timer:now_diff(erlang:timestamp(), T2)/Iter)]), - {ok, Iter} = info(test_tbl, size), - delete(test_tbl). - -diff -ruN --exclude '*.orig' ../deps/p1_stun/src/stun.erl ../deps/p1_stun/src/stun.erl ---- ../deps/p1_stun/src/stun.erl 2015-01-14 12:52:02.000000000 +0100 -+++ ../deps/p1_stun/src/stun.erl 2015-06-25 10:22:10.000000000 +0200 -@@ -583,7 +583,7 @@ - end. - - now_priority() -> -- {MSec, Sec, USec} = now(), -+ {MSec, Sec, USec} = erlang:timestamp(), - -((MSec*1000000 + Sec)*1000000 + USec). - - clean_treap(Treap, CleanPriority) -> -@@ -647,7 +647,7 @@ - {ok, Sock}. - - seed() -> -- {A, B, C} = now(), -+ {A, B, C} = erlang:timestamp(), - random:seed(A, B, C). - - prepare_response(State, Msg) -> -diff -ruN --exclude '*.orig' ../deps/p1_stun/src/stun_shaper.erl ../deps/p1_stun/src/stun_shaper.erl ---- ../deps/p1_stun/src/stun_shaper.erl 2014-05-19 04:09:58.000000000 +0200 -+++ ../deps/p1_stun/src/stun_shaper.erl 2015-06-25 10:21:53.000000000 +0200 -@@ -46,7 +46,7 @@ - new(none) -> none; - new(MaxRate) when is_integer(MaxRate) -> - #maxrate{maxrate = MaxRate, lastrate = 0.0, -- lasttime = now_to_usec(now())}. -+ lasttime = now_to_usec(erlang:timestamp())}. - - -spec update(shaper(), integer()) -> {shaper(), integer()}. - -@@ -54,13 +54,13 @@ - update(#maxrate{} = State, Size) -> - MinInterv = 1000 * Size / - (2 * State#maxrate.maxrate - State#maxrate.lastrate), -- Interv = (now_to_usec(now()) - State#maxrate.lasttime) / -+ Interv = (now_to_usec(erlang:timestamp()) - State#maxrate.lasttime) / - 1000, - Pause = if MinInterv > Interv -> - 1 + trunc(MinInterv - Interv); - true -> 0 - end, -- NextNow = now_to_usec(now()) + Pause * 1000, -+ NextNow = now_to_usec(erlang:timestamp()) + Pause * 1000, - {State#maxrate{lastrate = - (State#maxrate.lastrate + - 1000000 * Size / (NextNow - State#maxrate.lasttime)) -diff -ruN --exclude '*.orig' ../deps/p1_stun/src/stun_test.erl ../deps/p1_stun/src/stun_test.erl ---- ../deps/p1_stun/src/stun_test.erl 2014-05-19 04:09:58.000000000 +0200 -+++ ../deps/p1_stun/src/stun_test.erl 2015-06-25 10:21:35.000000000 +0200 -@@ -356,7 +356,7 @@ - end. - - mk_trid() -> -- {A, B, C} = now(), -+ {A, B, C} = erlang:timestamp(), - random:seed(A, B, C), - random:uniform(1 bsl 96). - -diff -ruN --exclude '*.orig' ../deps/p1_stun/src/turn.erl ../deps/p1_stun/src/turn.erl ---- ../deps/p1_stun/src/turn.erl 2014-05-19 04:09:58.000000000 +0200 -+++ ../deps/p1_stun/src/turn.erl 2015-06-25 10:16:52.000000000 +0200 -@@ -64,8 +64,8 @@ - realm = <<"">> :: binary(), - key = {<<"">>, <<"">>, <<"">>} :: {binary(), binary(), binary()}, - server_name = <<"">> :: binary(), -- permissions = ?DICT:new() :: dict(), -- channels = ?DICT:new() :: dict(), -+ permissions = ?DICT:new() :: dict:dict(), -+ channels = ?DICT:new() :: dict:dict(), - max_permissions :: non_neg_integer() | atom(), - relay_ip = {127,0,0,1} :: inet:ip_address(), - min_port = 49152 :: non_neg_integer(), -@@ -117,7 +117,7 @@ - ok - end, - TRef = erlang:start_timer(?DEFAULT_LIFETIME, self(), stop), -- {A1, A2, A3} = now(), -+ {A1, A2, A3} = erlang:timestamp(), - random:seed(A1, A2, A3), - case turn_sm:add_allocation(AddrPort, Username, Realm, MaxAllocs, self()) of - ok -> -diff -ruN --exclude '*.orig' ../deps/p1_utils/src/p1_fsm.erl ../deps/p1_utils/src/p1_fsm.erl ---- ../deps/p1_utils/src/p1_fsm.erl 2014-07-28 01:40:11.000000000 +0200 -+++ ../deps/p1_utils/src/p1_fsm.erl 2015-06-25 10:22:37.000000000 +0200 -@@ -601,12 +601,12 @@ - true -> - Time1 - end, -- Now = now(), -+ Now = erlang:timestamp(), - Reason = case catch rpc_call(Node, M, F, A, RPCTimeout) of - {ok, Clone} -> - process_flag(trap_exit, true), - MRef = erlang:monitor(process, Clone), -- NowDiff = timer:now_diff(now(), Now) div 1000, -+ NowDiff = timer:now_diff(erlang:timestamp(), Now) div 1000, - TimeLeft = lists:max([Time1 - NowDiff, 0]), - TRef = erlang:start_timer(TimeLeft, self(), timeout), - relay_messages(MRef, TRef, Clone, Queue); -@@ -664,12 +664,12 @@ - true -> - Time1 - end, -- Now = now(), -+ Now = erlang:timestamp(), - Reason = case catch rpc_call(Node, M, F, A, RPCTimeout) of - {ok, Clone} -> - process_flag(trap_exit, true), - MRef = erlang:monitor(process, Clone), -- NowDiff = timer:now_diff(now(), Now) div 1000, -+ NowDiff = timer:now_diff(erlang:timestamp(), Now) div 1000, - TimeLeft = lists:max([Time1 - NowDiff, 0]), - TRef = erlang:start_timer(TimeLeft, self(), timeout), - relay_messages(MRef, TRef, Clone, Queue); -- cgit v1.2.3