[erlang-cluster_info] Initial commit (see rhbz #671884)

Peter Lemenkov peter at fedoraproject.org
Mon Feb 21 20:38:58 UTC 2011


commit 45d40a6e4c9fef65f9ebb28a5aa713b1bd810a85
Author: Peter Lemenkov <lemenkov at gmail.com>
Date:   Mon Feb 21 23:38:37 2011 +0300

    Initial commit (see rhbz #671884)
    
    Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>

 .gitignore                                         |    1 +
 ...cluster_info-0001-drop-gmt_util-dependency.diff |   74 ++++++++++++++++++++
 erlang-cluster_info.spec                           |   65 +++++++++++++++++
 sources                                            |    1 +
 4 files changed, 141 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..1b377b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/hibari-cluster-info-v0.1.0-0-gd077716.tar.gz
diff --git a/erlang-cluster_info-0001-drop-gmt_util-dependency.diff b/erlang-cluster_info-0001-drop-gmt_util-dependency.diff
new file mode 100644
index 0000000..dffeec6
--- /dev/null
+++ b/erlang-cluster_info-0001-drop-gmt_util-dependency.diff
@@ -0,0 +1,74 @@
+diff --git a/src/cluster_info.erl b/src/cluster_info.erl
+index e53a8bc..aa952fb 100644
+--- a/src/cluster_info.erl
++++ b/src/cluster_info.erl
+@@ -99,7 +99,7 @@ dump_node(Node, Path) when is_atom(Node), is_list(Path) ->
+                                  dump_local_info(Collector),
+                                  collector_done(Collector)
+                          end),
+-    {ok, MRef} = gmt_util:make_monitor(Remote),
++    {ok, MRef} = gmt_util_make_monitor(Remote),
+     Res = try
+               ok = collect_remote_info(Remote, FH)
+           catch X:Y ->
+@@ -108,7 +108,7 @@ dump_node(Node, Path) when is_atom(Node), is_list(Path) ->
+                   error
+           after
+               catch file:close(FH),
+-              gmt_util:unmake_monitor(MRef)
++              gmt_util_unmake_monitor(MRef)
+           end,
+     Res.
+ 
+@@ -243,3 +243,51 @@ harvest_reqs(Timeout) ->
+     after Timeout ->
+             []
+     end.
++
++%% From gmt_util.erl, also Apache Public License'd.
++
++%% @spec (server_spec()) -> {ok, monitor_ref()} | error
++%% @doc Simplify the arcane art of <tt>erlang:monitor/1</tt>:
++%%      create a monitor.
++%%
++%% The arg may be a PID or a {registered_name, node} tuple.
++%% In the case of the tuple, we will use rpc:call/4 to find the
++%% server's actual PID before calling erlang:monitor();
++%% therefore there is a risk of blocking by the RPC call.
++%% To avoid the risk of blocking in this case, use make_monitor/2.
++
++gmt_util_make_monitor(Pid) when is_pid(Pid) ->
++    gmt_util_make_monitor2(Pid);
++gmt_util_make_monitor({Name, Node}) ->
++    case catch rpc:call(Node, erlang, whereis, [Name]) of
++        Pid when is_pid(Pid) ->
++            gmt_util_make_monitor2(Pid);
++        _ ->
++            error
++    end.
++
++gmt_util_make_monitor2(Spec) ->                          % Private func
++    case catch erlang:monitor(process, Spec) of
++        MRef when is_reference(MRef) ->
++            receive
++                {'DOWN', MRef, _, _, _} ->
++                    error
++            after 0 ->
++                    {ok, MRef}
++            end;
++        _ ->
++            error
++    end.
++
++%% @spec (pid()) -> {ok, monitor_ref()} | error
++%% @doc Simplify the arcane art of <tt>erlang:demonitor/1</tt>:
++%%      destroy a monitor.
++
++gmt_util_unmake_monitor(MRef) ->
++    erlang:demonitor(MRef),
++    receive
++        {'DOWN', MRef, _, _, _} ->
++            ok
++    after 0 ->
++            ok
++    end.
diff --git a/erlang-cluster_info.spec b/erlang-cluster_info.spec
new file mode 100644
index 0000000..88d8f7b
--- /dev/null
+++ b/erlang-cluster_info.spec
@@ -0,0 +1,65 @@
+%global realname cluster_info
+%global debug_package %{nil}
+%global git_tag d077716
+
+
+Name:		erlang-%{realname}
+Version:	0.1.0
+Release:	0.3.20101229git%{git_tag}%{?dist}
+Summary:	Cluster info/postmortem inspector for Erlang applications
+Group:		Development/Languages
+License:	ASL 2.0
+URL:		https://github.com/hibari/cluster-info
+# wget --no-check-certificate https://github.com/hibari/cluster-info/tarball/d077716
+Source0:	hibari-cluster-info-v%{version}-0-g%{git_tag}.tar.gz
+Patch1:		erlang-cluster_info-0001-drop-gmt_util-dependency.diff
+BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+BuildRequires:	erlang-erts
+BuildRequires:	erlang-rebar
+# erlang:get_stacktrace/0
+Requires:	erlang-erts >= R12B
+Requires:	erlang-kernel
+Requires:	erlang-stdlib
+
+
+%description
+Cluster info/postmortem inspector for Erlang applications.
+
+
+%prep
+%setup -q -n hibari-cluster-info-%{git_tag}
+%patch1 -p1 -b .drop-gmt_util_dependency
+
+
+%build
+rebar compile -v
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT%{_libdir}/erlang/lib/%{realname}-%{version}/ebin
+install -m 644 ebin/%{realname}.{app,beam} $RPM_BUILD_ROOT%{_libdir}/erlang/lib/%{realname}-%{version}/ebin
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root,-)
+%doc LICENSE
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}/ebin
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}.app
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}.beam
+
+
+%changelog
+* Sun Feb 20 2011 Peter Lemenkov <lemenkov at gmail.com> - 0.1.0-0.3.20101229gitd077716
+- Changed Source0 again
+
+* Sun Jan 30 2011 Peter Lemenkov <lemenkov at gmail.com> - 0.1.0-0.2.20101229gitd077716
+- Changed Source0 url
+
+* Sat Jan 22 2011 Peter Lemenkov <lemenkov at gmail.com> - 0.1.0-0.1.20101229gitd077716
+- Initial build
diff --git a/sources b/sources
index e69de29..5397ff2 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+c80f5c022cc934e1694bcaec3c5af047  hibari-cluster-info-v0.1.0-0-gd077716.tar.gz


More information about the scm-commits mailing list