[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