[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