[erlang-gen_leader] Allow build on EL5
Peter Lemenkov
peter at fedoraproject.org
Fri Jun 1 09:26:35 UTC 2012
commit e9b52afd3881075ff450bdad4b0e7457482dce9d
Author: Peter Lemenkov <lemenkov at gmail.com>
Date: Fri Jun 1 13:26:27 2012 +0400
Allow build on EL5
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
...ts-keysearch-3-instead-of-lists-keyfind-3.patch | 2 +-
...-gen_leader-0002-Missing-typedefs-in-R12B.patch | 62 ++++++++++++++++++++
erlang-gen_leader.spec | 16 ++++-
3 files changed, 75 insertions(+), 5 deletions(-)
---
diff --git a/erlang-gen_leader-0001-Use-lists-keysearch-3-instead-of-lists-keyfind-3.patch b/erlang-gen_leader-0001-Use-lists-keysearch-3-instead-of-lists-keyfind-3.patch
index 8eb717f..d98c8e1 100644
--- a/erlang-gen_leader-0001-Use-lists-keysearch-3-instead-of-lists-keyfind-3.patch
+++ b/erlang-gen_leader-0001-Use-lists-keysearch-3-instead-of-lists-keyfind-3.patch
@@ -1,7 +1,7 @@
From 83e9d611bbb683b0484c998580afa8374fcbdf84 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
Date: Tue, 22 May 2012 18:47:00 +0400
-Subject: [PATCH 1/1] Use lists:keysearch/3 instead of lists:keyfind/3.
+Subject: [PATCH 1/2] Use lists:keysearch/3 instead of lists:keyfind/3.
Some erlang distributions (R12B and below) doesn't have lists:keyfind/3
function. It's better to use lists:keysearch/3 instead - it's available
diff --git a/erlang-gen_leader-0002-Missing-typedefs-in-R12B.patch b/erlang-gen_leader-0002-Missing-typedefs-in-R12B.patch
new file mode 100644
index 0000000..a16c2ae
--- /dev/null
+++ b/erlang-gen_leader-0002-Missing-typedefs-in-R12B.patch
@@ -0,0 +1,62 @@
+From f6c7f1b888f85c59d7fa8bdf37a1168af78f17de Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 1 Jun 2012 13:21:17 +0400
+Subject: [PATCH 2/2] Missing typedefs in R12B
+
+Fix the following issues while compiling with R12B:
+
+src/gen_leader.erl:114: type reference() undefined
+src/gen_leader.erl:131: type reference() undefined
+src/gen_leader.erl:143: type reference() undefined
+src/gen_leader.erl:171: type arity() undefined
+
+Use term() instead.
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ src/gen_leader.erl | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/gen_leader.erl b/src/gen_leader.erl
+index 560f73c..4e69b1a 100644
+--- a/src/gen_leader.erl
++++ b/src/gen_leader.erl
+@@ -111,7 +111,7 @@
+ -type name() :: atom().
+
+ %% A monitor ref
+--type mon_ref() :: reference().
++-type mon_ref() :: term().
+
+ -type server_ref() :: name() | {name(),node()} | {global,name()} | pid().
+
+@@ -128,7 +128,7 @@
+ -type elid() :: {priority(), incarn(), lclock()}.
+
+ %% See gen_server.
+--type caller_ref() :: {pid(), reference()}.
++-type caller_ref() :: {pid(), term()}.
+
+ %% Opaque state of the gen_leader behaviour.
+ -record(election, {
+@@ -140,7 +140,7 @@
+ worker_nodes = [] :: [node()],
+ down = [] :: [node()],
+ monitored = [] :: [{mon_ref(), node()}],
+- buffered = [] :: [{reference(),caller_ref()}],
++ buffered = [] :: [{term(),caller_ref()}],
+ seed_node = none :: 'none' | node(),
+ status :: status(),
+ elid :: elid(),
+@@ -168,7 +168,7 @@
+ %%% Interface functions.
+ %%% ---------------------------------------------------
+
+--spec behaviour_info(atom()) -> 'undefined' | [{atom(), arity()}].
++-spec behaviour_info(atom()) -> 'undefined' | [{atom(), integer()}].
+
+ behaviour_info(callbacks) ->
+ [{init,1},
+--
+1.7.10.2
+
diff --git a/erlang-gen_leader.spec b/erlang-gen_leader.spec
index 82cdeb9..c838c83 100644
--- a/erlang-gen_leader.spec
+++ b/erlang-gen_leader.spec
@@ -7,7 +7,7 @@
Name: erlang-%{realname}
Version: 1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A leader election behavior modeled after gen_server
Group: Development/Libraries
License: ERPL
@@ -15,11 +15,12 @@ URL: https://github.com/abecciu/gen_leader_revival
# wget --no-check-certificate --content-disposition https://github.com/abecciu/gen_leader_revival/tarball/de57ba7
Source0: %{upstream}-%{realname}_revival-%{git_tag}.tar.gz
Patch1: erlang-gen_leader-0001-Use-lists-keysearch-3-instead-of-lists-keyfind-3.patch
+Patch2: erlang-gen_leader-0002-Missing-typedefs-in-R12B.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: erlang-rebar
-Requires: erlang-erts >= R12B-5
-Requires: erlang-kernel >= R12B-5
-Requires: erlang-stdlib >= R12B-5
+Requires: erlang-erts >= R12B
+Requires: erlang-kernel >= R12B
+Requires: erlang-stdlib >= R12B
%description
@@ -30,7 +31,11 @@ distributed server with master-slave semantics.
%prep
%setup -q -n %{upstream}-%{realname}_revival-%{git_tag}
+%if 0%{?el5}
+# Erlang/OTP R12B5
%patch1 -p1
+%patch2 -p1
+%endif
%build
@@ -57,6 +62,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Fri Jun 01 2012 Peter Lemenkov <lemenkov at gmail.com> - 1.0-2
+- Allow build on EL5
+
* Tue May 22 2012 Peter Lemenkov <lemenkov at gmail.com> - 1.0-1
- Ver. 1.0
More information about the scm-commits
mailing list