Hello community, here is the log from the commit of package rabbitmq-server for openSUSE:Factory checked in at 2019-11-06 14:06:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rabbitmq-server (Old) and /work/SRC/openSUSE:Factory/.rabbitmq-server.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rabbitmq-server" Wed Nov 6 14:06:33 2019 rev:52 rq:745438 version:3.7.21 Changes: -------- --- /work/SRC/openSUSE:Factory/rabbitmq-server/rabbitmq-server.changes 2019-10-30 14:46:52.966122586 +0100 +++ /work/SRC/openSUSE:Factory/.rabbitmq-server.new.2990/rabbitmq-server.changes 2019-11-06 14:06:35.444816476 +0100 @@ -1,0 +2,8 @@ +Mon Nov 4 13:02:21 UTC 2019 - Gabriele Santomaggio <gsantomag...@gmail.com> + +- Update to RabbitMQ version 3.7.21 +- Full release notes: https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.21 +- RabbitMQ 3.7.21 is a maintenance release that focuses on bug fixes. +- RabbitMQ 3.7.x series is supported through March 2020. + +------------------------------------------------------------------- Old: ---- rabbitmq-server-3.7.20.tar.xz New: ---- rabbitmq-server-3.7.21.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rabbitmq-server.spec ++++++ --- /var/tmp/diff_new_pack.t7dJ8E/_old 2019-11-06 14:06:36.268817339 +0100 +++ /var/tmp/diff_new_pack.t7dJ8E/_new 2019-11-06 14:06:36.272817343 +0100 @@ -33,7 +33,7 @@ %define _make_args DESTDIR="%{buildroot}" PREFIX="%{_prefix}" RMQ_ROOTDIR=%{_rabbit_libdir} RMQ_ERLAPP_DIR=%{_rabbit_erllibdir} MAN_INSTALL_PATH="%{_mandir}" DOC_INSTALL_DIR=%{buildroot}/%{_docdir} VERSION=%{version} V=1 Name: rabbitmq-server -Version: 3.7.20 +Version: 3.7.21 Release: 0 Summary: A message broker supporting AMQP, STOMP and MQTT License: MPL-1.1 ++++++ rabbitmq-server-3.7.20.tar.xz -> rabbitmq-server-3.7.21.tar.xz ++++++ Binary files old/rabbitmq-server-3.7.20/deps/.hex/cache.ets and new/rabbitmq-server-3.7.21/deps/.hex/cache.ets differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbit/src/rabbit_reader.erl new/rabbitmq-server-3.7.21/deps/rabbit/src/rabbit_reader.erl --- old/rabbitmq-server-3.7.20/deps/rabbit/src/rabbit_reader.erl 2019-10-22 02:19:14.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbit/src/rabbit_reader.erl 2019-10-31 14:26:56.000000000 +0100 @@ -652,7 +652,7 @@ terminate(Explanation, State) when ?IS_RUNNING(State) -> {normal, handle_exception(State, 0, rabbit_misc:amqp_error( - connection_forced, Explanation, [], none))}; + connection_forced, "~s", [Explanation], none))}; terminate(_Explanation, State) -> {force, State}. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl new/rabbitmq-server-3.7.21/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl --- old/rabbitmq-server-3.7.20/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl 2019-10-14 21:46:35.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl 2019-10-31 11:43:23.000000000 +0100 @@ -103,10 +103,12 @@ {user_dn, UserDN}, {vhost, VHost}] ++ ADArgs, ?L("CHECK: ~s for ~s", [log_vhost(Args), log_user(User)]), - R = evaluate_ldap(env(vhost_access_query), Args, User), - ?L("DECISION: ~s for ~s: ~p", - [log_vhost(Args), log_user(User), log_result(R)]), - R. + R0 = evaluate_ldap(env(vhost_access_query), Args, User), + R1 = ensure_rabbit_authz_backend_result(R0), + ?L("DECISION: ~s for ~s: ~p (~p)", + [log_vhost(Args), log_user(User), + log_result(R0), log_result(R1)]), + R1. check_resource_access(User = #auth_user{username = Username, impl = #impl{user_dn = UserDN}}, @@ -120,17 +122,19 @@ {name, Name}, {permission, Permission}] ++ ADArgs, ?L("CHECK: ~s for ~s", [log_resource(Args), log_user(User)]), - R = evaluate_ldap(env(resource_access_query), Args, User), - ?L("DECISION: ~s for ~s: ~p", - [log_resource(Args), log_user(User), log_result(R)]), - R. + R0 = evaluate_ldap(env(resource_access_query), Args, User), + R1 = ensure_rabbit_authz_backend_result(R0), + ?L("DECISION: ~s for ~s: ~p (~p)", + [log_resource(Args), log_user(User), + log_result(R0), log_result(R1)]), + R1. check_topic_access(User = #auth_user{username = Username, impl = #impl{user_dn = UserDN}}, #resource{virtual_host = VHost, kind = topic = Resource, name = Name}, Permission, Context) -> - OptionsArgs = topic_context_as_options(Context, undefined), + OptionsArgs = context_as_options(Context, undefined), ADArgs = rabbit_auth_backend_ldap_util:get_active_directory_args(Username), Args = [{username, Username}, {user_dn, UserDN}, @@ -139,20 +143,36 @@ {name, Name}, {permission, Permission}] ++ OptionsArgs ++ ADArgs, ?L("CHECK: ~s for ~s", [log_resource(Args), log_user(User)]), - R = evaluate_ldap(env(topic_access_query), Args, User), - ?L("DECISION: ~s for ~s: ~p", - [log_resource(Args), log_user(User), log_result(R)]), - R. + R0 = evaluate_ldap(env(topic_access_query), Args, User), + R1 = ensure_rabbit_authz_backend_result(R0), + ?L("DECISION: ~s for ~s: ~p (~p)", + [log_resource(Args), log_user(User), + log_result(R0), log_result(R1)]), + R1. %%-------------------------------------------------------------------- -topic_context_as_options(Context, Namespace) when is_map(Context) -> +ensure_rabbit_authz_backend_result(true) -> + true; +ensure_rabbit_authz_backend_result(false) -> + false; +ensure_rabbit_authz_backend_result({error, _}=Error) -> + Error; +% rabbitmq/rabbitmq-auth-backend-ldap#116 +ensure_rabbit_authz_backend_result({refused, _, _}) -> + false; +ensure_rabbit_authz_backend_result({ok, _}) -> + true; +ensure_rabbit_authz_backend_result({ok, _, _}) -> + true. + +context_as_options(Context, Namespace) when is_map(Context) -> % filter keys that would erase fixed variables lists:flatten([begin Value = maps:get(Key, Context), case Value of MapOfValues when is_map(MapOfValues) -> - topic_context_as_options(MapOfValues, Key); + context_as_options(MapOfValues, Key); SimpleValue -> case Namespace of undefined -> @@ -164,7 +184,7 @@ end || Key <- maps:keys(Context), lists:member( rabbit_data_coercion:to_atom(Key), ?RESOURCE_ACCESS_QUERY_VARIABLES) =:= false]); -topic_context_as_options(_, _) -> +context_as_options(_, _) -> []. create_option_name_with_namespace(Namespace, Key) -> @@ -376,7 +396,7 @@ R end. -%% In some cases when fetching regular expressions, LDAP evalution() +%% In some cases when fetching regular expressions, LDAP evalution() %% returns a list of strings, so we need to wrap guards around that. %% If a list of strings is returned, loop and match versus each element. do_match_multi(S1, []) -> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema --- old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema 1970-01-01 01:00:00.000000000 +0100 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema 2019-10-30 16:38:44.000000000 +0100 @@ -0,0 +1,7 @@ +{mapping, "event_exchange.vhost", "rabbitmq_event_exchange.vhost", + [{datatype, string}]}. + +{translation, "rabbitmq_event_exchange.vhost", +fun(Conf) -> + list_to_binary(cuttlefish:conf_get("event_exchange.vhost", Conf)) +end}. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl --- old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl 2019-10-09 20:21:13.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl 2019-10-30 16:38:44.000000000 +0100 @@ -11,7 +11,7 @@ %% The Original Code is RabbitMQ. %% %% The Initial Developer of the Original Code is GoPivotal, Inc. -%% Copyright (c) 2007-2017 Pivotal Software, Inc. All rights reserved. +%% Copyright (c) 2007-2018 Pivotal Software, Inc. All rights reserved. %% -module(rabbit_exchange_type_event). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema new/rabbitmq-server-3.7.21/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema --- old/rabbitmq-server-3.7.20/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema 2019-10-09 19:36:45.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema 2019-10-30 16:28:14.000000000 +0100 @@ -202,7 +202,7 @@ %% CONNECT frame. %% %% {implicit_connect, true} -% ]}, + {mapping, "stomp.implicit_connect", "rabbitmq_stomp.implicit_connect", [{datatype, {enum, [true, false]}}]}. @@ -212,3 +212,10 @@ {mapping, "stomp.proxy_protocol", "rabbitmq_stomp.proxy_protocol", [{datatype, {enum, [true, false]}}]}. + +%% Whether or not to hide server info +%% +%% {hide_server_info, false} + +{mapping, "stomp.hide_server_info", "rabbitmq_stomp.hide_server_info", + [{datatype, {enum, [true, false]}}]}. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl new/rabbitmq-server-3.7.21/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl --- old/rabbitmq-server-3.7.20/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl 2019-10-09 20:39:25.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl 2019-10-31 13:24:48.000000000 +0100 @@ -66,10 +66,17 @@ start_tcp_listener(TCPConf0, CowboyOpts) -> {TCPConf, IpStr, Port} = get_tcp_conf(TCPConf0), - MaxConnections = get_max_connections(), - case ranch:start_listener(web_mqtt, get_env(num_tcp_acceptors, 10), - ranch_tcp, [{max_connections, MaxConnections}|TCPConf], - rabbit_web_mqtt_connection_sup, CowboyOpts) of + RanchTransportOpts = #{ + socket_opts => TCPConf, + connection_type => supervisor, + max_connections => get_max_connections(), + num_acceptors => get_env(num_tcp_acceptors, 10) + }, + case ranch:start_listener(web_mqtt, + ranch_tcp, + RanchTransportOpts, + rabbit_web_mqtt_connection_sup, + CowboyOpts) of {ok, _} -> ok; {error, {already_started, _}} -> ok; {error, ErrTCP} -> @@ -86,13 +93,17 @@ start_tls_listener(TLSConf0, CowboyOpts) -> rabbit_networking:ensure_ssl(), {TLSConf, TLSIpStr, TLSPort} = get_tls_conf(TLSConf0), - MaxConnections = get_max_connections(), - {ok, _} = ranch:start_listener(web_mqtt_secure, get_env(num_ssl_acceptors, 10), - ranch_ssl, [{max_connections, MaxConnections}|TLSConf], - rabbit_web_mqtt_connection_sup, CowboyOpts), - case ranch:start_listener(web_mqtt_secure, get_env(num_ssl_acceptors, 10), - ranch_ssl, [{max_connections, MaxConnections}|TLSConf], - rabbit_web_mqtt_connection_sup, CowboyOpts) of + RanchTransportOpts = #{ + socket_opts => TLSConf, + connection_type => supervisor, + max_connections => get_max_connections(), + num_acceptors => get_env(num_ssl_acceptors, 10) + }, + case ranch:start_listener(web_mqtt_secure, + ranch_ssl, + RanchTransportOpts, + rabbit_web_mqtt_connection_sup, + CowboyOpts) of {ok, _} -> ok; {error, {already_started, _}} -> ok; {error, ErrTLS} -> @@ -115,20 +126,18 @@ ok. get_tcp_conf(TCPConf0) -> - TCPConf1 = [{connection_type, supervisor}|TCPConf0], - TCPConf2 = case proplists:get_value(port, TCPConf1) of - undefined -> [{port, 15675}|TCPConf1]; - _ -> TCPConf1 + TCPConf1 = case proplists:get_value(port, TCPConf0) of + undefined -> [{port, 15675}|TCPConf0]; + _ -> TCPConf0 end, - get_ip_port(TCPConf2). + get_ip_port(TCPConf1). get_tls_conf(TLSConf0) -> - TLSConf1 = [{connection_type, supervisor}|TLSConf0], - TLSConf2 = case proplists:get_value(port, TLSConf1) of - undefined -> [{port, 15675}|proplists:delete(port, TLSConf1)]; - _ -> TLSConf1 + TLSConf1 = case proplists:get_value(port, TLSConf0) of + undefined -> [{port, 15675}|proplists:delete(port, TLSConf0)]; + _ -> TLSConf0 end, - get_ip_port(TLSConf2). + get_ip_port(TLSConf1). get_ip_port(Conf0) -> IpStr = proplists:get_value(ip, Conf0), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl new/rabbitmq-server-3.7.21/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl --- old/rabbitmq-server-3.7.20/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl 2019-10-09 20:23:15.000000000 +0200 +++ new/rabbitmq-server-3.7.21/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl 2019-10-31 13:51:34.000000000 +0100 @@ -48,22 +48,28 @@ end, ok. -start_tcp_listener(TCPConf0, CowboyOpts, Routes) -> +start_tcp_listener(TCPConf0, CowboyOpts0, Routes) -> NumTcpAcceptors = case application:get_env(rabbitmq_web_stomp, num_tcp_acceptors) of undefined -> get_env(num_acceptors, 10); {ok, NumTcp} -> NumTcp end, Port = get_tcp_port(application:get_all_env(rabbitmq_web_stomp)), TCPConf = get_tcp_conf(TCPConf0, Port), - MaxConnections = get_max_connections(), - case ranch:start_listener( - http, NumTcpAcceptors, - ranch_tcp, [{connection_type, supervisor}, {max_connections, MaxConnections}] ++ TCPConf, - rabbit_web_stomp_connection_sup, - CowboyOpts#{env => #{dispatch => Routes}, - middlewares => [cowboy_router, - rabbit_web_stomp_middleware, - cowboy_handler]}) of + RanchTransportOpts = #{ + socket_opts => TCPConf, + connection_type => supervisor, + max_connections => get_max_connections(), + num_acceptors => NumTcpAcceptors + }, + CowboyOpts = CowboyOpts0#{env => #{dispatch => Routes}, + middlewares => [cowboy_router, + rabbit_web_stomp_middleware, + cowboy_handler]}, + case ranch:start_listener(web_stomp, + ranch_tcp, + RanchTransportOpts, + rabbit_web_stomp_connection_sup, + CowboyOpts) of {ok, _} -> ok; {error, {already_started, _}} -> ok; {error, ErrTCP} -> @@ -79,7 +85,7 @@ [get_binding_address(TCPConf), Port]). -start_tls_listener(TLSConf0, CowboyOpts, Routes) -> +start_tls_listener(TLSConf0, CowboyOpts0, Routes) -> rabbit_networking:ensure_ssl(), NumSslAcceptors = case application:get_env(rabbitmq_web_stomp, num_ssl_acceptors) of undefined -> get_env(num_acceptors, 10); @@ -87,15 +93,21 @@ end, TLSPort = proplists:get_value(port, TLSConf0), TLSConf = maybe_parse_ip(TLSConf0), - MaxConnections = get_max_connections(), - case ranch:start_listener( - https, NumSslAcceptors, - ranch_ssl, [{connection_type, supervisor}, {max_connections, MaxConnections}] ++ TLSConf, - rabbit_web_stomp_connection_sup, - CowboyOpts#{env => #{dispatch => Routes}, - middlewares => [cowboy_router, - rabbit_web_stomp_middleware, - cowboy_handler]}) of + RanchTransportOpts = #{ + socket_opts => TLSConf, + connection_type => supervisor, + max_connections => get_max_connections(), + num_acceptors => NumSslAcceptors + }, + CowboyOpts = CowboyOpts0#{env => #{dispatch => Routes}, + middlewares => [cowboy_router, + rabbit_web_stomp_middleware, + cowboy_handler]}, + case ranch:start_listener(web_stomp_secure, + ranch_ssl, + RanchTransportOpts, + rabbit_web_stomp_connection_sup, + CowboyOpts) of {ok, _} -> ok; {error, {already_started, _}} -> ok; {error, ErrTLS} -> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rabbitmq-server-3.7.20/git-revisions.txt new/rabbitmq-server-3.7.21/git-revisions.txt --- old/rabbitmq-server-3.7.20/git-revisions.txt 2019-10-25 14:54:43.000000000 +0200 +++ new/rabbitmq-server-3.7.21/git-revisions.txt 2019-11-01 02:19:33.000000000 +0100 @@ -1,8 +1,8 @@ -RabbitMQ Server 3.7.20 -rabbitmq_server_release ef4ee54e097d0f870105b66f0bb5c12f8b5ff249 -amqp10_client 9b34f676642d08883fcc3fe38a9f65fe37ca0bc7 v3.7.19 -amqp10_common 2603f6dd5d38e53928e94260fee76a2c0c2415aa v3.7.19 -amqp_client 47d244d8948c220e32027aadd2a94f831969ba83 +RabbitMQ Server 3.7.21 +rabbitmq_server_release 5f0a985815d187f5f91c8b2ac25540f29e82d822 v3.7.20 +amqp10_client 9b34f676642d08883fcc3fe38a9f65fe37ca0bc7 v3.7.20 +amqp10_common 2603f6dd5d38e53928e94260fee76a2c0c2415aa v3.7.20 +amqp_client 47d244d8948c220e32027aadd2a94f831969ba83 v3.7.20 cowboy cowlib 8588724cf91ddbb53b9c35ed665866556b217323 2.7.0 credentials_obfuscation @@ -11,43 +11,43 @@ jsx lager observer_cli -rabbit 39b57573df9ab26d98724235b1be12a9773e6c11 -rabbit_common fe67d981c2c393b053c9df6b7f6523c8f484e4d0 -rabbitmq_amqp1_0 efebe416a5bdcbef29a9102f5a95e4d094b67474 v3.7.19 -rabbitmq_auth_backend_cache 745233e297dd8110660fae55322a7878b489151a v3.7.19 -rabbitmq_auth_backend_http c130398b7d2abf45be897d67499263d3beddbb1a v3.7.19 -rabbitmq_auth_backend_ldap 6a9560000e676ced23933c4bf4474ef5b9845698 -rabbitmq_auth_mechanism_ssl decabd86963e535dc3f326c408e5279167ee553b v3.7.19 -rabbitmq_aws e64adca1d513ea3d86aafb68a6c9ba0047da1985 v3.7.19 -rabbitmq_cli 6aaa2fbde7e5172a9e933bcbebfacbcf397b0a85 -rabbitmq_codegen b808d4231384eeaa11af0e8f26436ee5b6f96bec v3.7.19 -rabbitmq_consistent_hash_exchange 5ff7f6718413bcc6427c92c4b3ab5bea1360acf3 v3.7.19 -rabbitmq_event_exchange d2518a66ced5db5404e8d1da69ca36ec4b0db206 v3.7.19 -rabbitmq_federation e6f0e2c6b62dca303ec4f870bbd1ae1216c74651 v3.7.19 -rabbitmq_federation_management 7dfd6f98688e54cfbdc0370537df705cfb65177e -rabbitmq_jms_topic_exchange 70f89eda4650daf9e366f15b2bed05051d91d23c v3.7.19 -rabbitmq_management a19a05943c75195ed4bb8825e4b9535413ccdea2 v3.7.19 -rabbitmq_management_agent bcd12aecfd95dc8e0109cc6d9c0ce6b72ec6e9a7 v3.7.19 -rabbitmq_mqtt f73d4021eaddca5c3a0e7be33ffcb1331b078889 -rabbitmq_peer_discovery_aws 45c208a21f734db2ecc5cc253060e7ed03b0e63c -rabbitmq_peer_discovery_common 9a5913c2577d2693b99d7a84b67ae08aaf3cd511 -rabbitmq_peer_discovery_consul b0fd6a01b288cb29abfc3263d6836ff7f34fd45e -rabbitmq_peer_discovery_etcd cdb9ccc888a4a25cb2e4265e6b55214f01a828cc -rabbitmq_peer_discovery_k8s 2da5a78716361c0d37a09fc7b6b1f11c4f0ee5ef -rabbitmq_random_exchange 62ac0effd3e64518758e52aadcf2a7d49cec2ce3 v3.7.19 -rabbitmq_recent_history_exchange ad2e479cf76fbb3c8a125bd4b39e6e85b5f01157 v3.7.19 -rabbitmq_sharding ed15e34adce9cfa330481c1450ed0eb857420bb5 v3.7.19 -rabbitmq_shovel 858ca0e51f21e494af11f9d496bdceedff43af9d v3.7.19 -rabbitmq_shovel_management 4ed231a13054f9bab228462c82dfa977429436c8 -rabbitmq_stomp 000226a067e9397a7dedcc871c15572f37bf8562 v3.7.19 -rabbitmq_top 7dfe45fee14628f1b5bb9f424c28500981fe140e v3.7.19 -rabbitmq_tracing e5772822957c2c636b63ba484afdfd8d64063335 -rabbitmq_trust_store ab8138c3a38d6c5bbc0ca862b01995c0f70198a1 v3.7.19 -rabbitmq_web_dispatch 473d3af6226ba5673461aed74a8e1e060461c593 v3.7.19 -rabbitmq_web_mqtt 4e826a436f8ff81e761b1eb732a43f9ac9396ff5 v3.7.19 -rabbitmq_web_mqtt_examples dce1cb830ab85a93515781e596ff29d268fa16d0 v3.7.19 -rabbitmq_web_stomp 5b6cdf44ecaec6cc35b6e8049c56eb0a0068c9b2 v3.7.19 -rabbitmq_web_stomp_examples 8e1dc308359e20ea34882d1b664d8529849fed6d v3.7.19 +rabbit d75eb86dae6fbdc79b5413eb577bf36d9f3a6c87 +rabbit_common fe67d981c2c393b053c9df6b7f6523c8f484e4d0 v3.7.20 +rabbitmq_amqp1_0 efebe416a5bdcbef29a9102f5a95e4d094b67474 v3.7.20 +rabbitmq_auth_backend_cache 745233e297dd8110660fae55322a7878b489151a v3.7.20 +rabbitmq_auth_backend_http c130398b7d2abf45be897d67499263d3beddbb1a v3.7.20 +rabbitmq_auth_backend_ldap 3d30722193b8789ae81e7e8f44bb138bf460ac9b +rabbitmq_auth_mechanism_ssl decabd86963e535dc3f326c408e5279167ee553b v3.7.20 +rabbitmq_aws e64adca1d513ea3d86aafb68a6c9ba0047da1985 v3.7.20 +rabbitmq_cli 6aaa2fbde7e5172a9e933bcbebfacbcf397b0a85 v3.7.20 +rabbitmq_codegen b808d4231384eeaa11af0e8f26436ee5b6f96bec v3.7.20 +rabbitmq_consistent_hash_exchange 5ff7f6718413bcc6427c92c4b3ab5bea1360acf3 v3.7.20 +rabbitmq_event_exchange bde8836294b398c053f46791537700be874ac834 +rabbitmq_federation e6f0e2c6b62dca303ec4f870bbd1ae1216c74651 v3.7.20 +rabbitmq_federation_management 7dfd6f98688e54cfbdc0370537df705cfb65177e v3.7.20 +rabbitmq_jms_topic_exchange 70f89eda4650daf9e366f15b2bed05051d91d23c v3.7.20 +rabbitmq_management a19a05943c75195ed4bb8825e4b9535413ccdea2 v3.7.20 +rabbitmq_management_agent bcd12aecfd95dc8e0109cc6d9c0ce6b72ec6e9a7 v3.7.20 +rabbitmq_mqtt f73d4021eaddca5c3a0e7be33ffcb1331b078889 v3.7.20 +rabbitmq_peer_discovery_aws 45c208a21f734db2ecc5cc253060e7ed03b0e63c v3.7.20 +rabbitmq_peer_discovery_common 9a5913c2577d2693b99d7a84b67ae08aaf3cd511 v3.7.20 +rabbitmq_peer_discovery_consul b0fd6a01b288cb29abfc3263d6836ff7f34fd45e v3.7.20 +rabbitmq_peer_discovery_etcd cdb9ccc888a4a25cb2e4265e6b55214f01a828cc v3.7.20 +rabbitmq_peer_discovery_k8s 2da5a78716361c0d37a09fc7b6b1f11c4f0ee5ef v3.7.20 +rabbitmq_random_exchange 62ac0effd3e64518758e52aadcf2a7d49cec2ce3 v3.7.20 +rabbitmq_recent_history_exchange ad2e479cf76fbb3c8a125bd4b39e6e85b5f01157 v3.7.20 +rabbitmq_sharding ed15e34adce9cfa330481c1450ed0eb857420bb5 v3.7.20 +rabbitmq_shovel 858ca0e51f21e494af11f9d496bdceedff43af9d v3.7.20 +rabbitmq_shovel_management 4ed231a13054f9bab228462c82dfa977429436c8 v3.7.20 +rabbitmq_stomp 5e65c85ad2d33a054bb8dac8ed38d4a9b1e8fd64 +rabbitmq_top 7dfe45fee14628f1b5bb9f424c28500981fe140e v3.7.20 +rabbitmq_tracing e5772822957c2c636b63ba484afdfd8d64063335 v3.7.20 +rabbitmq_trust_store ab8138c3a38d6c5bbc0ca862b01995c0f70198a1 v3.7.20 +rabbitmq_web_dispatch 473d3af6226ba5673461aed74a8e1e060461c593 v3.7.20 +rabbitmq_web_mqtt ff4d11e38406b1813e5c3bea4d07bf33d9fff5a8 +rabbitmq_web_mqtt_examples dce1cb830ab85a93515781e596ff29d268fa16d0 v3.7.20 +rabbitmq_web_stomp ed5baab673e5c087801b6496defae447e9839c14 +rabbitmq_web_stomp_examples 8e1dc308359e20ea34882d1b664d8529849fed6d v3.7.20 ranch recon stdout_formatter