[erlang-gproc] Another bunch of fixes for R12B (EL5)

Peter Lemenkov peter at fedoraproject.org
Sat Jul 28 20:01:30 UTC 2012


commit ae726f6f94d7008180da3194384f2b0a5cf4a6d3
Author: Peter Lemenkov <lemenkov at gmail.com>
Date:   Sun Jul 29 00:01:18 2012 +0400

    Another bunch of fixes for R12B (EL5)
    
    Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>

 ...emove-explicit-rebar-deps-Fedora-specific.patch |    2 +-
 erlang-gproc-0002-Kill-useless-eunit-include.patch |    2 +-
 ...ction-lists-keyfind-3-in-R12B5-use-lists-.patch |   24 ++++++-
 erlang-gproc-0004-Missing-typedefs-in-R12B.patch   |   52 +++++++++++++++
 ...No-such-built-in-function-error-1-in-R12B.patch |   26 ++++++++
 erlang-gproc-0006-No-such-ETS-option-in-R12B.patch |   66 ++++++++++++++++++++
 ...tarting-slaves-during-eunit-tests-on-R12B.patch |   26 ++++++++
 ...0008-Can-t-set-up-heap_size-R12B-specific.patch |   34 ++++++++++
 erlang-gproc.spec                                  |   27 ++++++--
 9 files changed, 246 insertions(+), 13 deletions(-)
---
diff --git a/erlang-gproc-0001-Remove-explicit-rebar-deps-Fedora-specific.patch b/erlang-gproc-0001-Remove-explicit-rebar-deps-Fedora-specific.patch
index 775bf1c..2e3f69d 100644
--- a/erlang-gproc-0001-Remove-explicit-rebar-deps-Fedora-specific.patch
+++ b/erlang-gproc-0001-Remove-explicit-rebar-deps-Fedora-specific.patch
@@ -1,7 +1,7 @@
 From c1b7451cb141d1d8e4345cfd20da820a591606a1 Mon Sep 17 00:00:00 2001
 From: Peter Lemenkov <lemenkov at gmail.com>
 Date: Tue, 15 May 2012 17:31:31 +0400
-Subject: [PATCH 1/3] Remove explicit rebar deps (Fedora-specific)
+Subject: [PATCH 1/8] Remove explicit rebar deps (Fedora-specific)
 
 This is controlled by RPM in Fedora/EPEL.
 
diff --git a/erlang-gproc-0002-Kill-useless-eunit-include.patch b/erlang-gproc-0002-Kill-useless-eunit-include.patch
index d9f67ef..941f8b8 100644
--- a/erlang-gproc-0002-Kill-useless-eunit-include.patch
+++ b/erlang-gproc-0002-Kill-useless-eunit-include.patch
@@ -1,7 +1,7 @@
 From e6653099cd1a63310e6077d9ebec3181ebfd238f Mon Sep 17 00:00:00 2001
 From: Peter Lemenkov <lemenkov at gmail.com>
 Date: Sat, 26 May 2012 20:08:38 +0400
-Subject: [PATCH 2/3] Kill useless eunit include
+Subject: [PATCH 2/8] Kill useless eunit include
 
 Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
 ---
diff --git a/erlang-gproc-0003-No-such-function-lists-keyfind-3-in-R12B5-use-lists-.patch b/erlang-gproc-0003-No-such-function-lists-keyfind-3-in-R12B5-use-lists-.patch
index a25dd09..67517d1 100644
--- a/erlang-gproc-0003-No-such-function-lists-keyfind-3-in-R12B5-use-lists-.patch
+++ b/erlang-gproc-0003-No-such-function-lists-keyfind-3-in-R12B5-use-lists-.patch
@@ -1,13 +1,14 @@
-From 4774ac4014158a788f588bbd6758a9d2d6dca39c Mon Sep 17 00:00:00 2001
+From 989643f0768c0ebddd1c842943b732510f054b14 Mon Sep 17 00:00:00 2001
 From: Peter Lemenkov <lemenkov at gmail.com>
 Date: Thu, 31 May 2012 23:09:05 +0400
-Subject: [PATCH 3/3] No such function lists:keyfind/3 in R12B5 - use
+Subject: [PATCH 3/8] No such function lists:keyfind/3 in R12B5 - use
  lists:keysearch/3 instead
 
 Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
 ---
- src/gproc_dist.erl |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ src/gproc_dist.erl   |    4 ++--
+ test/gproc_tests.erl |    4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/src/gproc_dist.erl b/src/gproc_dist.erl
 index dc45f41..69d7717 100644
@@ -30,6 +31,21 @@ index dc45f41..69d7717 100644
              case lists:delete(Node, Ns) of
                  [] ->
                      gen_leader:reply(Ref, {leader, reply, true}),
+diff --git a/test/gproc_tests.erl b/test/gproc_tests.erl
+index 776a2b7..cda92aa 100644
+--- a/test/gproc_tests.erl
++++ b/test/gproc_tests.erl
+@@ -50,8 +50,8 @@ t_ets_opts() ->
+     erlang:trace(new, false, [call]),
+     receive
+ 	{trace,_,call,{ets,new,[gproc,Opts]}} ->
+-	    ?assertMatch({write_concurrency, false},
+-			 lists:keyfind(write_concurrency,1,Opts))
++	    ?assertMatch({value, {write_concurrency, false}},
++			 lists:keysearch(write_concurrency,1,Opts))
+     after 3000 ->
+ 	    error(timeout)
+     end.
 -- 
 1.7.10.2
 
diff --git a/erlang-gproc-0004-Missing-typedefs-in-R12B.patch b/erlang-gproc-0004-Missing-typedefs-in-R12B.patch
new file mode 100644
index 0000000..b03b970
--- /dev/null
+++ b/erlang-gproc-0004-Missing-typedefs-in-R12B.patch
@@ -0,0 +1,52 @@
+From c3ad6a09ee05011eb8af8dae77228cae4c77f636 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 13:49:39 +0400
+Subject: [PATCH 4/8] Missing typedefs in R12B
+
+src/gproc_lib.erl:45: type boolean() undefined
+src/gproc_lib.erl:171: type reference() undefined
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ src/gproc.erl     |    2 +-
+ src/gproc_lib.erl |    4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/gproc.erl b/src/gproc.erl
+index 54c6d36..7d0174d 100644
+--- a/src/gproc.erl
++++ b/src/gproc.erl
+@@ -934,7 +934,7 @@ lookup_pids({T,_,_} = Key) ->
+     [P || P <- L, my_is_process_alive(P)].
+ 
+ 
+-%% @spec (pid()) -> boolean()
++%% @spec (pid()) -> bool()
+ %%
+ my_is_process_alive(P) when node(P) =:= node() ->
+     is_process_alive(P);
+diff --git a/src/gproc_lib.erl b/src/gproc_lib.erl
+index a9fbefc..8f11390 100644
+--- a/src/gproc_lib.erl
++++ b/src/gproc_lib.erl
+@@ -42,7 +42,7 @@
+ %% Pid around as payload as well. This is a bit redundant, but
+ %% symmetric.
+ %%
+--spec insert_reg(key(), any(), pid(), scope()) -> boolean().
++-spec insert_reg(key(), any(), pid(), scope()) -> bool().
+ 
+ insert_reg({T,_,Name} = K, Value, Pid, Scope) when T==a; T==n ->
+     MaybeScan = fun() ->
+@@ -168,7 +168,7 @@ maybe_waiters(K, Pid, Value, T, Info) ->
+     end.
+ 
+ 
+--spec notify_waiters([{pid(), reference()}], key(), pid(), any()) -> ok.
++-spec notify_waiters([{pid(), term()}], key(), pid(), any()) -> ok.
+ 
+ notify_waiters(Waiters, K, Pid, V) ->
+     _ = [begin
+-- 
+1.7.10.2
+
diff --git a/erlang-gproc-0005-No-such-built-in-function-error-1-in-R12B.patch b/erlang-gproc-0005-No-such-built-in-function-error-1-in-R12B.patch
new file mode 100644
index 0000000..a097181
--- /dev/null
+++ b/erlang-gproc-0005-No-such-built-in-function-error-1-in-R12B.patch
@@ -0,0 +1,26 @@
+From b5fab9306b36aa7d274e0493126e7503b071c544 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 13:59:46 +0400
+Subject: [PATCH 5/8] No such built-in function - error/1 in R12B
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ test/gproc_tests.erl |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/gproc_tests.erl b/test/gproc_tests.erl
+index cda92aa..1f0645d 100644
+--- a/test/gproc_tests.erl
++++ b/test/gproc_tests.erl
+@@ -53,7 +53,7 @@ t_ets_opts() ->
+ 	    ?assertMatch({value, {write_concurrency, false}},
+ 			 lists:keysearch(write_concurrency,1,Opts))
+     after 3000 ->
+-	    error(timeout)
++	    erlang:error(timeout)
+     end.
+ 
+ 
+-- 
+1.7.10.2
+
diff --git a/erlang-gproc-0006-No-such-ETS-option-in-R12B.patch b/erlang-gproc-0006-No-such-ETS-option-in-R12B.patch
new file mode 100644
index 0000000..ce092f9
--- /dev/null
+++ b/erlang-gproc-0006-No-such-ETS-option-in-R12B.patch
@@ -0,0 +1,66 @@
+From 2c831f091a085c6719da6150e2ff6db81f326e67 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 18:05:10 +0400
+Subject: [PATCH 6/8] No such ETS option in R12B
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ src/gproc.erl        |    4 +---
+ src/gproc_lib.erl    |    2 --
+ test/gproc_tests.erl |    4 ++--
+ 3 files changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/src/gproc.erl b/src/gproc.erl
+index 7d0174d..81fb477 100644
+--- a/src/gproc.erl
++++ b/src/gproc.erl
+@@ -1437,11 +1437,9 @@ pid_to_give_away_to({T,l,_} = Key) when T==n; T==a ->
+     end.
+ 
+ create_tabs() ->
+-    Opts = gproc_lib:valid_opts(ets_options, [{write_concurrency,true},
+-					      {read_concurrency, true}]),
+     case ets:info(?TAB, name) of
+         undefined ->
+-            ets:new(?TAB, [ordered_set, public, named_table | Opts]);
++            ets:new(?TAB, [ordered_set, public, named_table]);
+         _ ->
+             ok
+     end.
+diff --git a/src/gproc_lib.erl b/src/gproc_lib.erl
+index 8f11390..54e28fd 100644
+--- a/src/gproc_lib.erl
++++ b/src/gproc_lib.erl
+@@ -287,8 +287,6 @@ check_opts(Type, Other) ->
+ check_option_f(ets_options)    -> fun check_ets_option/1;
+ check_option_f(server_options) -> fun check_server_option/1.
+ 
+-check_ets_option({read_concurrency , B}) -> is_boolean(B);
+-check_ets_option({write_concurrency, B}) -> is_boolean(B);
+ check_ets_option(_) -> false.
+ 
+ check_server_option({priority, P}) ->
+diff --git a/test/gproc_tests.erl b/test/gproc_tests.erl
+index 1f0645d..215d05e 100644
+--- a/test/gproc_tests.erl
++++ b/test/gproc_tests.erl
+@@ -43,14 +43,14 @@ t_server_opts() ->
+ t_ets_opts() ->
+     %% Cannot inspect the write_concurrency attribute on an ets table in
+     %% any easy way, so trace on the ets:new/2 call and check the arguments.
+-    application:set_env(gproc, ets_options, [{write_concurrency, false}]),
++    application:set_env(gproc, ets_options, []),
+     erlang:trace_pattern({ets,new, 2}, [{[gproc,'_'],[],[]}], [global]),
+     erlang:trace(new, true, [call]),
+     ?assert(ok == application:start(gproc)),
+     erlang:trace(new, false, [call]),
+     receive
+ 	{trace,_,call,{ets,new,[gproc,Opts]}} ->
+-	    ?assertMatch({value, {write_concurrency, false}},
++	    ?assertMatch(false,
+ 			 lists:keysearch(write_concurrency,1,Opts))
+     after 3000 ->
+ 	    erlang:error(timeout)
+-- 
+1.7.10.2
+
diff --git a/erlang-gproc-0007-Fix-starting-slaves-during-eunit-tests-on-R12B.patch b/erlang-gproc-0007-Fix-starting-slaves-during-eunit-tests-on-R12B.patch
new file mode 100644
index 0000000..2eb8a2c
--- /dev/null
+++ b/erlang-gproc-0007-Fix-starting-slaves-during-eunit-tests-on-R12B.patch
@@ -0,0 +1,26 @@
+From 76f9e8d557483985c135c7a91c64fe36eb97b8f8 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 18:57:06 +0400
+Subject: [PATCH 7/8] Fix starting slaves during eunit tests on R12B
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ test/gproc_dist_tests.erl |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/gproc_dist_tests.erl b/test/gproc_dist_tests.erl
+index c68482b..4a75016 100644
+--- a/test/gproc_dist_tests.erl
++++ b/test/gproc_dist_tests.erl
+@@ -294,7 +294,7 @@ start_slave(Name) ->
+     case node() of
+         nonode at nohost ->
+             os:cmd("epmd -daemon"),
+-            {ok, _} = net_kernel:start([gproc_master, shortnames]);
++            {ok, _} = net_kernel:start([gproc_master]);
+         _ ->
+             ok
+     end,
+-- 
+1.7.10.2
+
diff --git a/erlang-gproc-0008-Can-t-set-up-heap_size-R12B-specific.patch b/erlang-gproc-0008-Can-t-set-up-heap_size-R12B-specific.patch
new file mode 100644
index 0000000..7126c86
--- /dev/null
+++ b/erlang-gproc-0008-Can-t-set-up-heap_size-R12B-specific.patch
@@ -0,0 +1,34 @@
+From 6ad10793948081e6afa85e9f196bda9ff81bdebf Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 23:04:21 +0400
+Subject: [PATCH 8/8] Can't set up heap_size (R12B-specific)
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ test/gproc_tests.erl |   10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/test/gproc_tests.erl b/test/gproc_tests.erl
+index 215d05e..0b5b384 100644
+--- a/test/gproc_tests.erl
++++ b/test/gproc_tests.erl
+@@ -30,15 +30,7 @@ conf_test_() ->
+      fun(_) ->
+ 	     application:stop(gproc)
+      end,
+-     [?_test(t_server_opts()),
+-      ?_test(t_ets_opts())]}.
+-
+-t_server_opts() ->
+-    H = 10000,
+-    application:set_env(gproc, server_options, [{min_heap_size, H}]),
+-    ?assert(ok == application:start(gproc)),
+-    {min_heap_size, H1} = process_info(whereis(gproc), min_heap_size),
+-    ?assert(is_integer(H1) andalso H1 > H).
++     [?_test(t_ets_opts())]}.
+ 
+ t_ets_opts() ->
+     %% Cannot inspect the write_concurrency attribute on an ets table in
+-- 
+1.7.10.2
+
diff --git a/erlang-gproc.spec b/erlang-gproc.spec
index 7b88053..5824d2e 100644
--- a/erlang-gproc.spec
+++ b/erlang-gproc.spec
@@ -7,27 +7,32 @@
 
 Name:		erlang-%{realname}
 Version:	0.2.11
-Release:	3%{?dist}
+Release:	4%{?dist}
 Summary:	Extended process registry for Erlang
 Group:		Development/Libraries
 License:	ERPL
 URL:		http://github.com/uwiger/gproc
-# wget --no-check-certificate --content-disposition https://github.com/esl/gproc/tarball/v0.2.11
+# wget --content-disposition https://github.com/esl/gproc/tarball/v0.2.11
 Source0:	%{upstream}-%{realname}-v%{version}-%{patchnumber}-g%{git_tag}.tar.gz
 Patch1:		erlang-gproc-0001-Remove-explicit-rebar-deps-Fedora-specific.patch
 Patch2:		erlang-gproc-0002-Kill-useless-eunit-include.patch
 Patch3:		erlang-gproc-0003-No-such-function-lists-keyfind-3-in-R12B5-use-lists-.patch
+Patch4:		erlang-gproc-0004-Missing-typedefs-in-R12B.patch
+Patch5:		erlang-gproc-0005-No-such-built-in-function-error-1-in-R12B.patch
+Patch6:		erlang-gproc-0006-No-such-ETS-option-in-R12B.patch
+Patch7:		erlang-gproc-0007-Fix-starting-slaves-during-eunit-tests-on-R12B.patch
+Patch8:		erlang-gproc-0008-Can-t-set-up-heap_size-R12B-specific.patch
 BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 BuildRequires:	erlang-edown
 BuildRequires:	erlang-erts
 BuildRequires:	erlang-eunit
 BuildRequires:	erlang-gen_leader
 BuildRequires:	erlang-rebar
-Requires:	erlang-erts >= R12B
-Requires:	erlang-gen_leader
-Requires:	erlang-kernel
-Requires:	erlang-mnesia
-Requires:	erlang-stdlib >= R12B-5
+Requires:	erlang-erts%{?_isa} >= R12B
+Requires:	erlang-gen_leader%{?_isa}
+Requires:	erlang-kernel%{?_isa}
+Requires:	erlang-mnesia%{?_isa}
+Requires:	erlang-stdlib%{?_isa} >= R12B-5
 
 
 %description
@@ -41,6 +46,11 @@ Extended process registry for Erlang.
 %if 0%{?el5}
 # Erlang/OTP R12B5
 %patch3 -p1 -b .no-lists-keyfind-3
+%patch4 -p1 -b .missing_typedefs
+%patch5 -p1 -b .missing_builtin
+%patch6 -p1 -b .no_ets_opts
+#%patch7 -p1 -b .fix_slaves
+%patch8 -p1 -b .cant_setup_heap_size
 %endif
 
 
@@ -85,6 +95,9 @@ rebar eunit -v
 
 
 %changelog
+* Sat Jul 28 2012 Peter Lemenkov <lemenkov at gmail.com> - 0.2.11-4
+- Another bunch of fixes for R12B
+
 * Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.2.11-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
 


More information about the scm-commits mailing list