Revert "Revert "LP #1376600. Prepare Corosync 2.3.3 package"" 22/2322/1 6.1
authorVladimir Kuklin <vkuklin@mirantis.com>
Mon, 26 Jan 2015 16:17:40 +0000 (16:17 +0000)
committerVladimir Kuklin <vkuklin@mirantis.com>
Mon, 26 Jan 2015 16:17:40 +0000 (16:17 +0000)
This reverts commit 137b1cd758dcdeb3a2ef5e1bd72690c6dc394e80.

Change-Id: I5955fd5135564cb81d9d7b8bcf60eff139605038

.gitreview [new file with mode: 0644]
bz1067028-1-cpg-Refactor-mh_req_exec_cpg_procleave.patch [new file with mode: 0644]
bz1067028-2-cpg-Make-sure-nodid-is-always-logged-as-hex-num.patch [new file with mode: 0644]
bz1067028-3-cpg-Make-sure-left-nodes-are-really-removed.patch [new file with mode: 0644]
corosync-1.4.6.tar.bz2 [deleted file]
corosync-2.3.3.tar.gz [new file with mode: 0644]
corosync-cpg-procdown.patch [deleted file]
corosync.spec

diff --git a/.gitreview b/.gitreview
new file mode 100644 (file)
index 0000000..f954fd8
--- /dev/null
@@ -0,0 +1,4 @@
+[gerrit]
+host=review.fuel-infra.org
+port=29418
+project=packages/centos6/corosync.git
diff --git a/bz1067028-1-cpg-Refactor-mh_req_exec_cpg_procleave.patch b/bz1067028-1-cpg-Refactor-mh_req_exec_cpg_procleave.patch
new file mode 100644 (file)
index 0000000..30436f5
--- /dev/null
@@ -0,0 +1,111 @@
+From fcf26e03036b6ae5a8ef762ea0b5691a4f790c92 Mon Sep 17 00:00:00 2001
+From: Jan Friesse <jfriesse@redhat.com>
+Date: Tue, 11 Feb 2014 15:27:31 +0100
+Subject: [PATCH] cpg: Refactor mh_req_exec_cpg_procleave
+
+Most of functionality is moved to do_proc_leave function to make it
+reusable.
+
+Signed-off-by: Jan Friesse <jfriesse@redhat.com>
+Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+---
+ exec/cpg.c |   67 +++++++++++++++++++++++++++++++++++++++--------------------
+ 1 files changed, 44 insertions(+), 23 deletions(-)
+
+diff --git a/exec/cpg.c b/exec/cpg.c
+index bc5feb6..9981440 100644
+--- a/exec/cpg.c
++++ b/exec/cpg.c
+@@ -313,6 +313,12 @@ static void do_proc_join(
+       unsigned int nodeid,
+       int reason);
++static void do_proc_leave(
++      const mar_cpg_name_t *name,
++      uint32_t pid,
++      unsigned int nodeid,
++      int reason);
++
+ static int notify_lib_totem_membership (
+       void *conn,
+       int member_list_entries,
+@@ -1195,6 +1201,37 @@ static void do_proc_join(
+                           MESSAGE_RES_CPG_CONFCHG_CALLBACK);
+ }
++static void do_proc_leave(
++      const mar_cpg_name_t *name,
++      uint32_t pid,
++      unsigned int nodeid,
++      int reason)
++{
++      struct process_info *pi;
++      struct list_head *iter;
++      mar_cpg_address_t notify_info;
++
++      notify_info.pid = pid;
++      notify_info.nodeid = nodeid;
++      notify_info.reason = reason;
++
++      notify_lib_joinlist(name, NULL,
++              0, NULL,
++              1, &notify_info,
++              MESSAGE_RES_CPG_CONFCHG_CALLBACK);
++
++      for (iter = process_info_list_head.next; iter != &process_info_list_head; ) {
++              pi = list_entry(iter, struct process_info, list);
++              iter = iter->next;
++
++              if (pi->pid == pid && pi->nodeid == nodeid &&
++                      mar_name_compare (&pi->group, name)==0) {
++                      list_del (&pi->list);
++                      free (pi);
++              }
++      }
++}
++
+ static void message_handler_req_exec_cpg_downlist_old (
+       const void *message,
+       unsigned int nodeid)
+@@ -1269,31 +1306,15 @@ static void message_handler_req_exec_cpg_procleave (
+       unsigned int nodeid)
+ {
+       const struct req_exec_cpg_procjoin *req_exec_cpg_procjoin = message;
+-      struct process_info *pi;
+-      struct list_head *iter;
+-      mar_cpg_address_t notify_info;
+-
+-      log_printf(LOGSYS_LEVEL_DEBUG, "got procleave message from cluster node %d", nodeid);
+-
+-      notify_info.pid = req_exec_cpg_procjoin->pid;
+-      notify_info.nodeid = nodeid;
+-      notify_info.reason = req_exec_cpg_procjoin->reason;
+-
+-      notify_lib_joinlist(&req_exec_cpg_procjoin->group_name, NULL,
+-              0, NULL,
+-              1, &notify_info,
+-              MESSAGE_RES_CPG_CONFCHG_CALLBACK);
+-      for (iter = process_info_list_head.next; iter != &process_info_list_head; ) {
+-              pi = list_entry(iter, struct process_info, list);
+-              iter = iter->next;
++      log_printf(LOGSYS_LEVEL_DEBUG, "got procleave message from cluster node %x (%s) for pid %u",
++              nodeid,
++              api->totem_ifaces_print(nodeid),
++              (unsigned int)req_exec_cpg_procjoin->pid);
+-              if (pi->pid == req_exec_cpg_procjoin->pid && pi->nodeid == nodeid &&
+-                      mar_name_compare (&pi->group, &req_exec_cpg_procjoin->group_name)==0) {
+-                      list_del (&pi->list);
+-                      free (pi);
+-              }
+-      }
++      do_proc_leave (&req_exec_cpg_procjoin->group_name,
++              req_exec_cpg_procjoin->pid, nodeid,
++              req_exec_cpg_procjoin->reason);
+ }
+-- 
+1.7.1
+
diff --git a/bz1067028-2-cpg-Make-sure-nodid-is-always-logged-as-hex-num.patch b/bz1067028-2-cpg-Make-sure-nodid-is-always-logged-as-hex-num.patch
new file mode 100644 (file)
index 0000000..2123f0c
--- /dev/null
@@ -0,0 +1,57 @@
+From 83c63b247f4030fe8123df7c9f96d7a1c8e245b1 Mon Sep 17 00:00:00 2001
+From: Jan Friesse <jfriesse@redhat.com>
+Date: Tue, 11 Feb 2014 15:30:33 +0100
+Subject: [PATCH] cpg: Make sure nodid is always logged as hex num
+
+Also number is prefixed by 0x so it's easier to spot that number is
+hexadecimal.
+
+Signed-off-by: Jan Friesse <jfriesse@redhat.com>
+Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+---
+ exec/cpg.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/exec/cpg.c b/exec/cpg.c
+index 9981440..db8d987 100644
+--- a/exec/cpg.c
++++ b/exec/cpg.c
+@@ -1236,7 +1236,7 @@ static void message_handler_req_exec_cpg_downlist_old (
+       const void *message,
+       unsigned int nodeid)
+ {
+-      log_printf (LOGSYS_LEVEL_WARNING, "downlist OLD from node %d",
++      log_printf (LOGSYS_LEVEL_WARNING, "downlist OLD from node 0x%x",
+               nodeid);
+ }
+@@ -1291,7 +1291,7 @@ static void message_handler_req_exec_cpg_procjoin (
+ {
+       const struct req_exec_cpg_procjoin *req_exec_cpg_procjoin = message;
+-      log_printf(LOGSYS_LEVEL_DEBUG, "got procjoin message from cluster node %d (%s) for pid %u",
++      log_printf(LOGSYS_LEVEL_DEBUG, "got procjoin message from cluster node 0x%x (%s) for pid %u",
+               nodeid,
+               api->totem_ifaces_print(nodeid),
+               (unsigned int)req_exec_cpg_procjoin->pid);
+@@ -1307,7 +1307,7 @@ static void message_handler_req_exec_cpg_procleave (
+ {
+       const struct req_exec_cpg_procjoin *req_exec_cpg_procjoin = message;
+-      log_printf(LOGSYS_LEVEL_DEBUG, "got procleave message from cluster node %x (%s) for pid %u",
++      log_printf(LOGSYS_LEVEL_DEBUG, "got procleave message from cluster node 0x%x (%s) for pid %u",
+               nodeid,
+               api->totem_ifaces_print(nodeid),
+               (unsigned int)req_exec_cpg_procjoin->pid);
+@@ -1328,7 +1328,7 @@ static void message_handler_req_exec_cpg_joinlist (
+       const struct join_list_entry *jle = (const struct join_list_entry *)(message + sizeof(struct qb_ipc_response_header));
+       struct joinlist_msg *stored_msg;
+-      log_printf(LOGSYS_LEVEL_DEBUG, "got joinlist message from node %x",
++      log_printf(LOGSYS_LEVEL_DEBUG, "got joinlist message from node 0x%x",
+               nodeid);
+       while ((const char*)jle < message + res->size) {
+-- 
+1.7.1
+
diff --git a/bz1067028-3-cpg-Make-sure-left-nodes-are-really-removed.patch b/bz1067028-3-cpg-Make-sure-left-nodes-are-really-removed.patch
new file mode 100644 (file)
index 0000000..6e2d0f5
--- /dev/null
@@ -0,0 +1,91 @@
+From fbe8768f1bbab6d546023d70e7f7b91a9dc213b0 Mon Sep 17 00:00:00 2001
+From: Jan Friesse <jfriesse@redhat.com>
+Date: Mon, 17 Feb 2014 15:36:19 +0100
+Subject: [PATCH] cpg: Make sure left nodes are really removed
+
+When node is paused and other nodes has in meantime exited cpg process,
+paused node after resume doesn't update it's membership correctly so on
+previously paused node exited cpg process is still visible.
+
+Solution is to compare join list with cpd and remove all pids which are
+not included in join list.
+
+Signed-off-by: Jan Friesse <jfriesse@redhat.com>
+Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+---
+ exec/cpg.c |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 52 insertions(+), 0 deletions(-)
+
+diff --git a/exec/cpg.c b/exec/cpg.c
+index db8d987..1c6fbb9 100644
+--- a/exec/cpg.c
++++ b/exec/cpg.c
+@@ -931,6 +931,56 @@ static void downlist_master_choose_and_send (void)
+       qb_map_destroy(group_map);
+ }
++/*
++ * Remove processes that might have left the group while we were suspended.
++ */
++static void joinlist_remove_zombie_pi_entries (void)
++{
++      struct list_head *pi_iter;
++      struct list_head *jl_iter;
++      struct process_info *pi;
++      struct joinlist_msg *stored_msg;
++      int found;
++
++      for (pi_iter = process_info_list_head.next; pi_iter != &process_info_list_head; ) {
++              pi = list_entry (pi_iter, struct process_info, list);
++              pi_iter = pi_iter->next;
++
++              /*
++               * Ignore local node
++               */
++              if (pi->nodeid == api->totem_nodeid_get()) {
++                      continue ;
++              }
++
++              /*
++               * Try to find message in joinlist messages
++               */
++              found = 0;
++              for (jl_iter = joinlist_messages_head.next;
++                      jl_iter != &joinlist_messages_head;
++                      jl_iter = jl_iter->next) {
++
++                      stored_msg = list_entry(jl_iter, struct joinlist_msg, list);
++
++                      if (stored_msg->sender_nodeid == api->totem_nodeid_get()) {
++                              continue ;
++                      }
++
++                      if (pi->nodeid == stored_msg->sender_nodeid &&
++                          pi->pid == stored_msg->pid &&
++                          mar_name_compare (&pi->group, &stored_msg->group_name) == 0) {
++                              found = 1;
++                              break ;
++                      }
++              }
++
++              if (!found) {
++                      do_proc_leave(&pi->group, pi->pid, pi->nodeid, CONFCHG_CPG_REASON_PROCDOWN);
++              }
++      }
++}
++
+ static void joinlist_inform_clients (void)
+ {
+       struct joinlist_msg *stored_msg;
+@@ -957,6 +1007,8 @@ static void joinlist_inform_clients (void)
+               do_proc_join (&stored_msg->group_name, stored_msg->pid, stored_msg->sender_nodeid,
+                       CONFCHG_CPG_REASON_NODEUP);
+       }
++
++      joinlist_remove_zombie_pi_entries ();
+ }
+ static void downlist_messages_delete (void)
+-- 
+1.7.1
+
diff --git a/corosync-1.4.6.tar.bz2 b/corosync-1.4.6.tar.bz2
deleted file mode 100644 (file)
index d089bb8..0000000
Binary files a/corosync-1.4.6.tar.bz2 and /dev/null differ
diff --git a/corosync-2.3.3.tar.gz b/corosync-2.3.3.tar.gz
new file mode 100644 (file)
index 0000000..75bee6c
Binary files /dev/null and b/corosync-2.3.3.tar.gz differ
diff --git a/corosync-cpg-procdown.patch b/corosync-cpg-procdown.patch
deleted file mode 100644 (file)
index 35b67ae..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: corosync-1.4.1/services/cpg.c
-===================================================================
---- corosync-1.4.1.orig/services/cpg.c
-+++ corosync-1.4.1/services/cpg.c
-@@ -870,7 +870,7 @@ static int cpg_lib_exit_fn (void *conn)
-       log_printf(LOGSYS_LEVEL_DEBUG, "exit_fn for conn=%p\n", conn);
--      if (cpd->group_name.length > 0) {
-+      if (cpd->group_name.length > 0 && cpd->cpd_state != CPD_STATE_LEAVE_STARTED) {
-               result = cpg_node_joinleave_send (cpd->pid, &cpd->group_name,
-                               MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN);
-               if (result == -1) {
index 16a96497b8afe85e0e2ee7c390083cf93316022c..ba2bd19881a2880aea72ee7c1906186300e4e115 100644 (file)
@@ -1,76 +1,88 @@
-#
-# spec file for package corosync
-#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
-#
-# All modifications and additions to the file contributed by third parties
-# remain the property of their copyright owners, unless otherwise agreed
-# upon. The license for this file, and modifications and additions to the
-# file, is the same license as for the pristine package itself (unless the
-# license for the pristine package is not an Open Source License, in which
-# case the license is the MIT License). An "Open Source License" is a
-# license that conforms to the Open Source Definition (Version 1.9)
-# published by the Open Source Initiative.
-
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
-#
-
-
+# Conditionals
+# Invoke "rpmbuild --without <feature>" or "rpmbuild --with <feature>"
+# to disable or enable specific features
 %bcond_with testagents
 %bcond_with watchdog
 %bcond_with monitoring
-%bcond_with snmp
-%bcond_with dbus
+%bcond_without snmp
+%bcond_without dbus
+# no InfiniBand stack on s390(x)
+%ifnarch s390 s390x
 %bcond_with rdma
+%endif
+%bcond_with systemd
+%bcond_without upstart
+%bcond_without xmlconf
+%bcond_without runautogen
+
+%global gitver %{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}
+%global gittarver %{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
 
-Name:           corosync
-Summary:        The Corosync Cluster Engine and Application Programming Interfaces
-License:        BSD-3-Clause
-Group:          Productivity/Clustering/HA
-Version:        1.4.6
-Release:        26.2
-Url:            http://www.corosync.org
-# Source from tar.gz, recompressed to bz2.
-# ftp://ftp:downloads@ftp.corosync.org/downloads/corosync-1.4.3/corosync-1.4.3.tar.gz
-Source0:        %{name}-%{version}.tar.bz2
-Patch5:         corosync-cpg-procdown.patch
+Name: corosync
+Summary: The Corosync Cluster Engine and Application Programming Interfaces
+Version: 2.3.3
+Release: 2%{?gitver}%{?dist}
+License: BSD
+Group: System Environment/Base
+URL: http://www.corosync.org/
+Source0: http://corosync.org/download/%{name}-%{version}%{?gittarver}.tar.gz
+
+Patch0: bz1067028-1-cpg-Refactor-mh_req_exec_cpg_procleave.patch
+Patch1: bz1067028-2-cpg-Make-sure-nodid-is-always-logged-as-hex-num.patch
+Patch2: bz1067028-3-cpg-Make-sure-left-nodes-are-really-removed.patch
+
+%if 0%{?rhel}
+ExclusiveArch: i686 x86_64
+%endif
 
 # Runtime bits
-Requires:       corosynclib = %{version}-%{release}
+Requires: corosynclib = %{version}-%{release}
 Requires(pre): /usr/sbin/useradd
 Requires(post): /sbin/chkconfig
 Requires(preun): /sbin/chkconfig
-Conflicts:      openais <= 0.89, openais-devel <= 0.89
+Obsoletes: openais, openais-devel, openaislib, openaislib-devel
+Obsoletes: cman, clusterlib, clusterlib-devel
 
 # Build bits
 
-%define buildtrunk 0
-%{?_with_buildtrunk: %define buildtrunk 1}
-
-%if %{buildtrunk}
-BuildRequires:  autoconf
-BuildRequires:  automake
+BuildRequires: groff
+BuildRequires: libqb-devel >= 0.14.2
+BuildRequires: nss-devel
+%if %{with runautogen}
+BuildRequires: autoconf automake libtool
+%endif
+%if %{with monitoring}
+BuildRequires: libstatgrab-devel
 %endif
-BuildRequires:  nss-devel
 %if %{with rdma}
-BuildRequires:  libibverbs-devel
-BuildRequires:  librdmacm-devel
+BuildRequires: libibverbs-devel librdmacm-devel
 %endif
 %if %{with snmp}
-BuildRequires:  net-snmp-devel
+BuildRequires: net-snmp-devel
 %endif
 %if %{with dbus}
-BuildRequires:  dbus-devel
+BuildRequires: dbus-devel
+%endif
+%if %{with systemd}
+BuildRequires: systemd-units
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%endif
+%if %{with xmlconf}
+Requires: libxslt
 %endif
 
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 %prep
-%setup -q -n %{name}-%{version}
-%patch5 -p1
+%setup -q -n %{name}-%{version}%{?gittarver}
+%patch0 -p1 -b .bz1067028-1
+%patch1 -p1 -b .bz1067028-2
+%patch2 -p1 -b .bz1067028-3
 
 %build
-%if %{buildtrunk}
+%if %{with runautogen}
 ./autogen.sh
 %endif
 
@@ -81,7 +93,6 @@ export rdmacm_CFLAGS=-I/usr/include/rdma \
 export rdmacm_LIBS=-lrdmacm \
 %endif
 %{configure} \
-       --enable-nss \
 %if %{with testagents}
        --enable-testagents \
 %endif
@@ -100,7 +111,18 @@ export rdmacm_LIBS=-lrdmacm \
 %if %{with rdma}
        --enable-rdma \
 %endif
-       --with-initddir=%{_initrddir}
+%if %{with systemd}
+       --enable-systemd \
+%endif
+%if %{with upstart}
+       --enable-upstart \
+%endif
+%if %{with xmlconf}
+       --enable-xmlconf \
+%endif
+       --with-initddir=%{_initrddir} \
+       --with-systemddir=%{_unitdir} \
+       --with-upstartdir=%{_sysconfdir}/init
 
 make %{_smp_mflags}
 
@@ -111,91 +133,141 @@ make install DESTDIR=%{buildroot}
 
 %if %{with dbus}
 mkdir -p -m 0700 %{buildroot}/%{_sysconfdir}/dbus-1/system.d
-install -m 644 %{_builddir}/%{name}-%{version}/conf/corosync-signals.conf %{buildroot}/%{_sysconfdir}/dbus-1/system.d/corosync-signals.conf
+install -m 644 %{_builddir}/%{name}-%{version}%{?gittarver}/conf/corosync-signals.conf %{buildroot}/%{_sysconfdir}/dbus-1/system.d/corosync-signals.conf
 %endif
 
 ## tree fixup
 # drop static libs
 rm -f %{buildroot}%{_libdir}/*.a
+rm -f %{buildroot}%{_libdir}/*.la
 # drop docs and html docs for now
 rm -rf %{buildroot}%{_docdir}/*
+# /etc/sysconfig/corosync-notifyd
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
+install -m 644 tools/corosync-notifyd.sysconfig.example \
+   %{buildroot}%{_sysconfdir}/sysconfig/corosync-notifyd
 
 %clean
 rm -rf %{buildroot}
 
 %description
-This package contains the Corosync Cluster Engine Executive, several
-default APIs and libraries, default configuration files, and an init
-script.
+This package contains the Corosync Cluster Engine Executive, several default
+APIs and libraries, default configuration files, and an init script.
 
 %post
+%if %{with systemd} && 0%{?systemd_post:1}
+%systemd_post corosync.service
+%else
 if [ $1 -eq 1 ]; then
        /sbin/chkconfig --add corosync || :
 fi
+%endif
 
 %preun
+%if %{with systemd} && 0%{?systemd_preun:1}
+%systemd_preun corosync.service
+%else
 if [ $1 -eq 0 ]; then
        /sbin/service corosync stop &>/dev/null || :
        /sbin/chkconfig --del corosync || :
 fi
+%endif
+
+%postun
+%if %{with systemd} && 0%{?systemd_postun:1}
+%systemd_postun
+%endif
 
 %files
 %defattr(-,root,root,-)
 %doc LICENSE SECURITY
-%{_bindir}/corosync-blackbox
 %{_sbindir}/corosync
 %{_sbindir}/corosync-keygen
-%{_sbindir}/corosync-objctl
+%{_sbindir}/corosync-cmapctl
 %{_sbindir}/corosync-cfgtool
-%{_sbindir}/corosync-fplay
-%{_sbindir}/corosync-pload
 %{_sbindir}/corosync-cpgtool
 %{_sbindir}/corosync-quorumtool
 %{_sbindir}/corosync-notifyd
+%{_bindir}/corosync-blackbox
+%if %{with xmlconf}
+%{_bindir}/corosync-xmlproc
+%config(noreplace) %{_sysconfdir}/corosync/corosync.xml.example
+%dir %{_datadir}/corosync
+%{_datadir}/corosync/xml2conf.xsl
+%{_mandir}/man8/corosync-xmlproc.8*
+%{_mandir}/man5/corosync.xml.5*
+%endif
 %dir %{_sysconfdir}/corosync
-%dir %{_sysconfdir}/corosync/service.d
 %dir %{_sysconfdir}/corosync/uidgid.d
 %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example
 %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example.udpu
+%config(noreplace) %{_sysconfdir}/sysconfig/corosync-notifyd
 %if %{with dbus}
 %{_sysconfdir}/dbus-1/system.d/corosync-signals.conf
 %endif
 %if %{with snmp}
 %{_datadir}/snmp/mibs/COROSYNC-MIB.txt
 %endif
+%if %{with systemd}
+%{_unitdir}/corosync.service
+%{_unitdir}/corosync-notifyd.service
+%dir %{_datadir}/corosync
+%{_datadir}/corosync/corosync
+%{_datadir}/corosync/corosync-notifyd
+%else
 %{_initrddir}/corosync
 %{_initrddir}/corosync-notifyd
-%dir %{_libexecdir}/lcrso
-%{_libexecdir}/lcrso/coroparse.lcrso
-%{_libexecdir}/lcrso/objdb.lcrso
-%{_libexecdir}/lcrso/service_cfg.lcrso
-%{_libexecdir}/lcrso/service_cpg.lcrso
-%{_libexecdir}/lcrso/service_evs.lcrso
-%{_libexecdir}/lcrso/service_confdb.lcrso
-%{_libexecdir}/lcrso/service_pload.lcrso
-%{_libexecdir}/lcrso/quorum_votequorum.lcrso
-%{_libexecdir}/lcrso/quorum_testquorum.lcrso
-%{_libexecdir}/lcrso/vsf_quorum.lcrso
-%{_libexecdir}/lcrso/vsf_ykd.lcrso
+%endif
+%if %{with upstart}
+%{_sysconfdir}/init/corosync.conf
+%{_sysconfdir}/init/corosync-notifyd.conf
+%endif
 %dir %{_localstatedir}/lib/corosync
 %dir %{_localstatedir}/log/cluster
 %{_mandir}/man8/corosync_overview.8*
 %{_mandir}/man8/corosync.8*
 %{_mandir}/man8/corosync-blackbox.8*
-%{_mandir}/man8/corosync-objctl.8*
+%{_mandir}/man8/corosync-cmapctl.8*
 %{_mandir}/man8/corosync-keygen.8*
 %{_mandir}/man8/corosync-cfgtool.8*
 %{_mandir}/man8/corosync-cpgtool.8*
-%{_mandir}/man8/corosync-fplay.8*
-%{_mandir}/man8/corosync-pload.8*
 %{_mandir}/man8/corosync-notifyd.8*
 %{_mandir}/man8/corosync-quorumtool.8*
 %{_mandir}/man5/corosync.conf.5*
+%{_mandir}/man5/votequorum.5*
+%{_mandir}/man8/cmap_keys.8*
+
+# optional testagent rpm
+#
+%if %{with testagents}
 
+%package -n corosync-testagents
+Summary: The Corosync Cluster Engine Test Agents
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: libqb >= 0.14.2
+
+%description -n corosync-testagents
+This package contains corosync test agents.
+
+%files -n corosync-testagents
+%defattr(755,root,root,-)
+%{_datadir}/corosync/tests/mem_leak_test.sh
+%{_datadir}/corosync/tests/net_breaker.sh
+%{_datadir}/corosync/tests/cmap-dispatch-deadlock.sh
+%{_datadir}/corosync/tests/shm_leak_audit.sh
+%{_bindir}/cpg_test_agent
+%{_bindir}/sam_test_agent
+%{_bindir}/votequorum_test_agent
+
+%endif
+
+# library
+#
 %package -n corosynclib
-Summary:        The Corosync Cluster Engine Libraries
-Group:          System Environment/Libraries
-Requires:       %{name} = %{version}-%{release}
+Summary: The Corosync Cluster Engine Libraries
+Group: System Environment/Libraries
+Requires: %{name} = %{version}-%{release}
 
 %description -n corosynclib
 This package contains corosync libraries.
@@ -205,28 +277,24 @@ This package contains corosync libraries.
 %doc LICENSE
 %{_libdir}/libcfg.so.*
 %{_libdir}/libcpg.so.*
-%{_libdir}/libconfdb.so.*
-%{_libdir}/libevs.so.*
+%{_libdir}/libcmap.so.*
 %{_libdir}/libtotem_pg.so.*
-%{_libdir}/liblogsys.so.*
-%{_libdir}/libcoroipcc.so.*
-%{_libdir}/libcoroipcs.so.*
 %{_libdir}/libquorum.so.*
 %{_libdir}/libvotequorum.so.*
-%{_libdir}/libpload.so.*
 %{_libdir}/libsam.so.*
+%{_libdir}/libcorosync_common.so.*
 
 %post -n corosynclib -p /sbin/ldconfig
 
 %postun -n corosynclib -p /sbin/ldconfig
 
 %package -n corosynclib-devel
-Summary:        The Corosync Cluster Engine Development Kit
-Group:          Development/Libraries
-Requires:       corosynclib = %{version}-%{release}
-Requires:       pkgconfig
-Provides:       corosync-devel = %{version}
-Obsoletes:      corosync-devel < 0.92-7
+Summary: The Corosync Cluster Engine Development Kit
+Group: Development/Libraries
+Requires: corosynclib = %{version}-%{release}
+Requires: pkgconfig
+Provides: corosync-devel = %{version}
+Obsoletes: corosync-devel < 0.92-7
 
 %description -n corosynclib-devel
 This package contains include files and man pages used to develop using
@@ -234,293 +302,389 @@ The Corosync Cluster Engine APIs.
 
 %files -n corosynclib-devel
 %defattr(-,root,root,-)
-%doc LICENSE README.devmap
+%doc LICENSE
 %dir %{_includedir}/corosync/
-%{_includedir}/corosync/cs_config.h
 %{_includedir}/corosync/corodefs.h
-%{_includedir}/corosync/coroipc_types.h
-%{_includedir}/corosync/coroipcs.h
-%{_includedir}/corosync/coroipcc.h
 %{_includedir}/corosync/cfg.h
-%{_includedir}/corosync/confdb.h
+%{_includedir}/corosync/cmap.h
 %{_includedir}/corosync/corotypes.h
 %{_includedir}/corosync/cpg.h
-%{_includedir}/corosync/evs.h
 %{_includedir}/corosync/hdb.h
-%{_includedir}/corosync/list.h
-%{_includedir}/corosync/mar_gen.h
 %{_includedir}/corosync/sam.h
-%{_includedir}/corosync/swab.h
 %{_includedir}/corosync/quorum.h
 %{_includedir}/corosync/votequorum.h
 %dir %{_includedir}/corosync/totem/
-%{_includedir}/corosync/totem/coropoll.h
 %{_includedir}/corosync/totem/totem.h
 %{_includedir}/corosync/totem/totemip.h
 %{_includedir}/corosync/totem/totempg.h
-%dir %{_includedir}/corosync/lcr/
-%{_includedir}/corosync/lcr/lcr_ckpt.h
-%{_includedir}/corosync/lcr/lcr_comp.h
-%{_includedir}/corosync/lcr/lcr_ifact.h
-%dir %{_includedir}/corosync/engine
-%{_includedir}/corosync/engine/config.h
-%{_includedir}/corosync/engine/coroapi.h
-%{_includedir}/corosync/engine/logsys.h
-%{_includedir}/corosync/engine/objdb.h
-%{_includedir}/corosync/engine/quorum.h
 %{_libdir}/libcfg.so
 %{_libdir}/libcpg.so
-%{_libdir}/libconfdb.so
-%{_libdir}/libevs.so
+%{_libdir}/libcmap.so
 %{_libdir}/libtotem_pg.so
-%{_libdir}/liblogsys.so
-%{_libdir}/libcoroipcc.so
-%{_libdir}/libcoroipcs.so
 %{_libdir}/libquorum.so
 %{_libdir}/libvotequorum.so
-%{_libdir}/libpload.so
 %{_libdir}/libsam.so
+%{_libdir}/libcorosync_common.so
 %{_libdir}/pkgconfig/*.pc
 %{_mandir}/man3/cpg_*3*
-%{_mandir}/man3/evs_*3*
-%{_mandir}/man3/confdb_*3*
+%{_mandir}/man3/quorum_*3*
 %{_mandir}/man3/votequorum_*3*
 %{_mandir}/man3/sam_*3*
 %{_mandir}/man8/cpg_overview.8*
-%{_mandir}/man8/evs_overview.8*
-%{_mandir}/man8/confdb_overview.8*
-%{_mandir}/man8/logsys_overview.8*
 %{_mandir}/man8/votequorum_overview.8*
-%{_mandir}/man8/coroipc_overview.8*
 %{_mandir}/man8/sam_overview.8*
-%{_mandir}/man8/confdb_keys.8*
+%{_mandir}/man3/cmap_*3*
+%{_mandir}/man8/cmap_overview.8*
+%{_mandir}/man8/quorum_overview.8*
 
 %changelog
-* Fri Jun  8 2012 tserong@suse.com
-- Update to corosync 1.4.3 stable release.
-- Add calls to missing object_find_destroy() to fix mem leaks
-- Free mem allocated by getaddrinfo
-- corosync.conf.example: change bindnetaddr, mcastaddr, add comments
-- Store error str if can't open logfile
-- Wait for corosync-notifyd exit in init script
-- iba: Use configured node id
-- Unlink shm buffers if init fails
-- Fix memory leaks when nss fails
-- Madvise NOSYNC flag only if available
-- Include net/if_var.h header only when needed
-- Include stdint.h because funcs uses int16_t
-- Use install instead of cp
-- Don't unlock mutex in different threads
-- Revert "Use install instead of cp"
-- Add support for per OS CP flags
-- Remove cloned lines in main of main.c
-- Fixed bug when corosync receive JoinMSG in OPERATIONAL state
-- Correct nodeid of token when we retransmit it
-- Correct nodeid in memb_state_commit_token_send function
-* Sun Feb  5 2012 jjzhang@suse.com
-- Send CPG_REASON_PROCDOWN when really needed (bnc#740343)
-* Tue Sep 20 2011 tserong@suse.com
-- Changes since corosync 1.4.1 stable release:
-  * Resolve a deadlock between the timer and serialize locks.
-  * totemconfig: change minimum RRP threshold
-  * Ignore memb_join messages during flush operations
-  * rrp: Higher threshold in passive mode for mcast (bnc#712037)
-  * rrp: Handle endless loop if all ifaces are faulty (bnc#712037)
-  * A CPG client can sometimes lockup if the local node is in the downlist
-  * Handle errors from totem_mcast
-  * coroipcc: use malloc for path in service_connect
-  * Version cs: 23112099e1c2b620e6976ca099d2b9afc80721aa
-- corosync 1.4.1 stable release:
-  * main: let poll really stop before totempg_finalize
-  * totemsrp: fix buffer overflows for large clusters (> 100 nodes)
-  * rrp: Handle rollower in passive rrp properly
-  * rrp: handle rollover in active rrp properly
-  * totemconfig: Change default FAIL_TO_RECV_CONST
-  * Fix problem where corosync will segfault if there are gaps in recovery
-  queue
-  * cpgtool/cfgtool: print list of IP with space between items
-  * RRP: redundant ring automatic recovery (fate#310284)
-  * fix typos in cpg_mcast_joined.3 and cpg_zcb_mcast_joined.3
-  * Remove spinlocks
-  * confdb: Resolve dispatch deadlock
-  * RRP: Fix ring initialization issue for UDPU mode
-  * crypto: rng_make_prng prevent buf overflow
-  * cpg: do_proc_join change list_slice to list_add
-  * totemudp: memset of proper size
-  * coroipcs: init buf in coroipcs_handler_dispatch
-  * iazc: Reduce number of mem alloc and memcpy
-  * coroipcc: Fix unhandled BSD EOF in coroipcc_dispatch_get()
-  * cpg: fix sync master selection when one node paused
-  * totemsrp: Enhance mcast failure detection
-  * coroipcs: Deny connect to service without initfn
-  * Add ipc_refcnt to message_handler_req_{exec, lib}_cfg_ringreenable()
-- corosync 1.3.1 release:
-  * corosync crashing when a network becomes disrupted and then restored
-  (bnc#685241)
-  * Align IPC on 8 byte boundaries for performance and avoid bus errors.
-  * Provide better checking of the message type.
-  * totemsrp: free messages originated in recovery rather then rely on
-  messages_free
-  * Resolve abort during simulatenous stopping of at least 4 nodes.
-  * Don't assert when ring id file is less then 8 bytes (possibly after
-  local fs problems).
-  * Handle delayed multicast packets that occur with switches.
-  * CPG: make sure coroipcc_service_disconnect() is always called.
-  * Fix abort when token is lost in RECOVERY state (bnc#677779)
-* Sat Sep 17 2011 jengelh@medozas.de
-- Remove redundant tags/sections from specfile
-- Add baselibs configuration
-* Tue Feb  8 2011 tserong@novell.com
-- Update to corosync 1.3.0
-- Set the max buffer size for sockets to reduce message dropping
-- diags: add a mechanism to trigger the writing the flight data
-- Add the UDPU transport (UDP transport for corosync)
-- Remove delay in library on corosync shutdown
-- Check for a properly configured multicast address.
-- cpg: fix sync'ing the downlist.
-- POLL: gracefully handle running out of file descriptors.
-- Return CS_ERR_NO_RESOURCES when the server is low on available file
-  descriptors.
-- Remove checking of subparameters in service.d files.
-- Only allow corosync to run one copy via a lock file.
-- When used with the openais ckpt service, don't disconnect an ipc
-  connection during configuration change that takes longer then 2
-  seconds.
-- Remove the token cancel retransmit timeout on receipt of a multicast
-  message.
-* Thu Aug  5 2010 tserong@novell.com
-- Update to corosync 1.2.7
-  - Remove consensus check for two node cluster cases which can have smaller
-    consensus values.  Document in man page the behavior of consensus.
-* Tue Jul 27 2010 tserong@novell.com
-- Fix problem where flow control could lock up ipc under very heavy load in
-  very rare circumstances (upstream cs 3003)
-- SYNC: always call sync_aborted() in sync_confchg_fn() (upstream cs 3000)
-- SYNCV2: reset the my_memb_determine_ring_id in sync_v2_memb_list_abort()
-  (upstream cs 2999)
-- Fix logging_daemon config parser code (rhbz#615203) (upstream cs 2998)
-- Remove reset of token timeout on retransmitted token reception.  Fixes
-  membership problems with certain timing parametrs (upstream cs 2989)
-- Speed up IPC connection process (upstream cs 2987)
-- Fix fail list fault that occurs in very rare circumstances (upstream cs 2985)
-* Thu Jul 22 2010 tserong@novell.com
-- Update to corosync 1.2.6
-  - 80%% packet loss networks were resulting in problems with totem.
-  - Fixed ~40 scanning errors found with coverity.
-  - cpg_membership_get now functional.
-  - errors logged prior to the start of the daemon were not flushed.
-  - Fixes defects in logsys which are crashing pacemaker installations.
-  - Adds man pages for all binaries
-  - Fixes several defects found in high packet loss field environments.
-  - Send proper notification code of CPG_REASON_LEAVE in cpg service.
-  - Fix segfault when pacemaker forks new processes
-  - Unlock global serializer lock during shutdown to prevent spinning on
-    single cpu systems or high cpu use on mulitple cpu systems
-  - Stop totem statistics updater timer during shutdown to prevent a
-    segfault during shutdown.
-  - Fix problem where glibc's fork() implementation may cause segfaults in
-    Pacemaker's use of the fork() system call.
-  - Fix problem where a full /dev/shm would result in client segfault -
-    instead an error is returned in this situation.
-  - Fix problem where flight recorder leaks files in shared memory
-    filesystem.  Also clean up the error handling of the shared memory
-    allocation code of the flight recorder.
-  - Fix problem where a failure in glibc's pathconf API would result in
-    segfault.
-  - Add corosync and corosync-blackbox man pages.
-* Fri Jul  9 2010 dmuhamedagic@novell.com
-- prevent corosync-cfgtool from hanging (bnc#616183)
-* Wed Jun  2 2010 tserong@novell.com
-- Set sensible defaults for Pacemaker in corosync.conf.example (bnc#610663)
-- Clarify bindnetaddr option in corosync.conf.5 manpage (upstream cs 2856)
-* Mon May 10 2010 dmuhamedagic@novell.com
-- Handle POLLNVAL in coroipcc
-- Save the ring id and restore it properly when the recovery operation fails
-- increase maximum entries in the retransmit queue when recovery takes place.
-- fix one-off error in memove
-- discard and report unknown messages
-* Mon Apr 26 2010 dmuhamedagic@novell.com
-- fix valgrind reported problems (upstream cs 2787)
-  - Memset for res_setup variable in coroipcs:req_setup_send
-  - Two memset in logsys for buffers
-  - Problem in corosync_totem_stats_updater where
-  avg_token_holdtime has size of avg_backlog_calc
-  - corosync_totem_stats_init where avg_backlog_calc is 32 bits (not 64)
-  - objdb problem if new_valie_len != object->value_len. In
-  such case newly allocated memory is not initialized and in some
-  situations, value_len is not updated.
-- select a new sync member if the node with the lowest nodeid has
-  left (upstream cs 2785)
-- fix a crash in YKD
-* Fri Apr  9 2010 dmuhamedagic@novell.com
-- clear the ring id on sync abort (bnc#590666)
-- fix unloading of evs
-- change sign of all exit codes (normal error exit is now 1)
-- objdb: fix key change notifications (don't notify if the key
-  wasn't changed; notify on key inc/dec)
-- fix possible lockup when a dispatch handler function is NULL
-- upstream version cs 2756
-* Mon Mar 29 2010 dmuhamedagic@novell.com
-- fix lockup that occurs sometimes before exiting
-- fix problem where retransmissions don't occur resulting in failure
-  to receive condition
-- add a reload callback to libconfdb
-- support for lib_cpg_finalize
-- cpg join with undelivered leave message (fixes problems with nodes
-  joining cpg twice in quick succession)
-- fix error handling to avoid segfaults/leaks on error
-  in coroipcc_service_connect
-- upstream release 1.2.1
-* Thu Mar  4 2010 dmuhamedagic@novell.com
-- retain nodeid compatibility with openais (revert patch from cs 2429)
-* Wed Mar  3 2010 jjzhang@novell.com
-- minor enhancement to corosync.conf man page (bnc#580180)
-* Tue Mar  2 2010 dmuhamedagic@novell.com
-- upstream version cs 2667
-- allow empty (default) consensus timeout
-- fix freeze of IPC library connection on sem_wait
-- fix malloc deadlock in signal handler (rhbz#547511)
-- fix coroipcs message corruption that occurs when a message fills the
-  remainder of the dispatch buffer with a full message
-- totemsrp: fix transitional configuration changes with long token timeouts
-- remove a double list_del() when a tracking CFG client shuts down without
-  calling cfg_track_stop (it caused corosync to crash)
-- use nodeid instead of localhost ip for the case when binding to a loalhost
-  interface
-- fix corosync shutdown process
-- add augeas lense for corosync.conf
-- patch to set unset value in token hold cancel structure as to not crash
-  wireshark
-- convert unsafe function to thread-safe reentrant equivalents
-* Mon Feb 22 2010 dmuhamedagic@novell.com
-- SP1 beta5 (no code changes)
-* Mon Feb  8 2010 dmuhamedagic@novell.com
-- turn timestamp off in corosync.conf.example (there was a problem
-  reported in connection with not thread-safe glibc functions used
-  in concert with this option, which hasn't yet been resolved)
-* Wed Jan 27 2010 dmuhamedagic@novell.com
-- add cs2646 patch from upstream, fixes cs2642
-- add patch to accept on/off for the various log directives (bnc#573451)
-* Thu Jan 21 2010 dmuhamedagic@novell.com
-- %%pre script moved to openais
-* Mon Jan 18 2010 dmuhamedagic@novell.com
-- remove init script
-- add %%pre script to copy openais.conf and authkey to /etc/corosync
-- add patch 2642 (parser fix)
-- fix some obsoletes/requires
-* Mon Jan 11 2010 lmb@novell.com
-- Update to corosync 1.2.0.
-* Tue Dec 29 2009 dmuhamedagic@novell.com
-- init script changes:
-  + replace killall with checkproc, otherwise corosync can't stop
-  + test if sbd/lrmadmin exist, because corosync has no dependency
-    on cluster-glue
-* Tue Dec 15 2009 dmuhamedagic@novell.com
-- update to the corosync upstream release 1.2.0
-- add suse init script
-- don't create rccorosync, because users should be using
-  rcopenais to start a cluster
-- rename corosynclib to libcorosync4 (similar for the devel package)
-  (http://en.opensuse.org/Shared_Library_Packaging_Policy)
-- Autotools generated version from the released upstream version 1.2.0
-- some specfile changes (initddir -> initrddir, header)
+* Thu Feb 20 2014 Jan Friesse <jfriesse@redhat.com> 2.3.3-2
+- Resolves: rhbz#1067028
+
+- cpg: Refactor mh_req_exec_cpg_procleave (rhbz#1067028)
+- merge upstream commit fcf26e03036b6ae5a8ef762ea0b5691a4f790c92 (rhbz#1067028)
+- cpg: Make sure nodid is always logged as hex num (rhbz#1067028)
+- merge upstream commit 83c63b247f4030fe8123df7c9f96d7a1c8e245b1 (rhbz#1067028)
+- cpg: Make sure left nodes are really removed (rhbz#1067028)
+- merge upstream commit fbe8768f1bbab6d546023d70e7f7b91a9dc213b0 (rhbz#1067028)
+
+* Tue Jan 14 2014 Jan Friesse <jfriesse@redhat.com> - 2.3.3-1
+- Resolves: rhbz#1030559
+- Resolves: rhbz#1038652
+- Resolves: rhbz#1052049
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2.3.2-4
+- Mass rebuild 2013-12-27
+
+* Wed Dec 04 2013 Jan Friesse <jfriesse@redhat.com> 2.3.2-3
+- Resolves: rhbz#1031832
+
+- cfgtool: return error on reload failure (rhbz#1031832)
+- merge upstream commit 7014f10123a634cf026491edc9a09d6044106116 (rhbz#1031832)
+
+* Thu Nov 7 2013 Jan Friesse <jfriesse@redhat.com> 2.3.2-2
+- Resolves: rhbz#1008561
+
+- Drop support for IBA (rhbz#1008561)
+
+* Mon Sep 16 2013 Jan Friesse <jfriesse@redhat.com> - 2.3.2-1
+- Resolves: rhbz#998882
+
+- New upstream release
+
+* Mon Aug 19 2013 Jan Friesse <jfriesse@redhat.com> 2.3.1-3
+- Resolves: rhbz#998362
+
+- Fix scheduler pause-detection timeout (rhbz#998362)
+- merge upstream commit 2740cfd1eac60714601c74df2137fe588b607866 (rhbz#998362)
+
+* Wed Jul 17 2013 Andrew Beekhof <abeekhof@redhat.com> - 2.3.1-2
+- Rebuild for snmp library bump
+
+* Wed Jul 10 2013 Jan Friesse <jfriesse@redhat.com> - 2.3.1-1
+- New upstream release
+- Fix incorrect dates in specfile changelog section
+
+* Mon Mar 25 2013 Jan Friesse <jfriesse@redhat.com> - 2.3.0-3
+- Resolves: rhbz#925185
+
+- Run autogen by default
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Fri Jan 18 2013 Jan Friesse <jfriesse@redhat.com> - 2.3.0-1
+- New upstream release
+
+* Wed Dec 12 2012 Jan Friesse <jfriesse@redhat.com> - 2.2.0-1
+- New upstream release
+
+* Thu Oct 11 2012 Jan Friesse <jfriesse@redhat.com> - 2.1.0-1
+- New upstream release
+
+* Fri Aug 3 2012 Steven Dake <sdake@redhat.com> - 2.0.1-3
+- add groff as a BuildRequires as it is no longer installed in the buildroot
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue May 22 2012 Jan Friesse <jfriesse@redhat.com> - 2.0.1-1
+- New upstream release
+
+* Tue Apr 17 2012 Fabio M. Di Nitto <fdinitto@redhat.com> - 2.0.0-2
+- Backport IPCS fix from master (ack by Steven)
+
+* Tue Apr 10 2012 Jan Friesse <jfriesse@redhat.com> - 2.0.0-1
+- New upstream release
+
+* Thu Apr 05 2012 Karsten Hopp <karsten@redhat.com> 1.99.9-1.1
+- bump release and rebuild on PPC
+
+* Tue Mar 27 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.9-1
+- New upstream release
+
+* Fri Mar 16 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.8-1
+- New upstream release
+
+* Tue Mar  6 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.7-1
+- New upstream release
+
+* Tue Feb 28 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.6-1
+- New upstream release
+
+* Wed Feb 22 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.5-1
+- New upstream release
+
+* Tue Feb 14 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.4-1
+- New upstream release
+
+* Tue Feb 14 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.3-1
+- New upstream release
+
+* Tue Feb  7 2012 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.99.2-1
+- New upstream release
+- Re-enable xmlconfig bits
+- Ship cmap man pages
+- Add workaround to usrmove breakage!!
+
+* Thu Feb  2 2012 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.99.1-2
+- Add proper Obsoltes on openais/cman/clusterlib
+
+* Wed Feb  1 2012 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.99.1-1
+- New upstream release
+- Temporary disable xml config (broken upstream tarball)
+
+* Tue Jan 24 2012 Jan Friesse <jfriesse@redhat.com> - 1.99.0-1
+- New upstream release
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Oct 06 2011 Jan Friesse <jfriesse@redhat.com> - 1.4.2-1
+- New upstream release
+
+* Thu Sep 08 2011 Jan Friesse <jfriesse@redhat.com> - 1.4.1-2
+- Add upstream fixes
+
+* Tue Jul 26 2011 Jan Friesse <jfriesse@redhat.com> - 1.4.1-1
+- New upstream release
+
+* Wed Jul 20 2011 Jan Friesse <jfriesse@redhat.com> - 1.4.0-2
+- Change attributes of cluster log directory
+
+* Tue Jul 19 2011 Jan Friesse <jfriesse@redhat.com> - 1.4.0-1
+- New upstream release
+- Resync spec file with upstream changes
+
+* Fri Jul 08 2011 Jan Friesse <jfriesse@redhat.com> - 1.3.2-1
+- New upstream release
+
+* Tue May 10 2011 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.3.1-1
+- New upstream release
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Dec  2 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.3.0-1
+- New upstream release
+- drop upstream patch revision-2770.patch now included in release
+- update spec file to ship corosync-blackbox
+
+* Thu Sep  2 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.8-1
+- New upstream release
+
+* Thu Jul 29 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.7-1
+- New upstream release
+
+* Fri Jul  9 2010 Dan HorĂ¡k <dan[at]danny.cz> - 1.2.6-2
+- no InfiniBand stack on s390(x)
+
+* Mon Jul  5 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.6-1
+- New upstream release
+- Resync spec file with upstream changes
+
+* Tue May 25 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.3-1
+- New upstream release
+- Rediff revision 2770 patch
+
+* Mon May 17 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.2-1
+- New upstream release
+- Add upstream trunk revision 2770 to add cpg_model_initialize api.
+- Fix URL and Source0 entries.
+- Add workaround to broken 1.2.2 Makefile with make -j.
+
+* Wed Mar 24 2010 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.1-1
+- New upstream release
+
+* Tue Dec  8 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.2.0-1
+- New upstream release
+- Use global instead of define
+- Update Source0 url
+- Use more name macro around
+- Cleanup install section. Init script is now installed by upstream
+- Cleanup whitespace
+- Don't deadlock between package upgrade and corosync condrestart
+- Ship service.d config directory
+- Fix Conflicts vs Requires
+- Ship new sam library and man pages
+
+* Fri Oct 23 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.1.2-1
+- New upstream release fixes major regression on specific loads
+
+* Wed Oct 21 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.1.1-1
+- New upstream release
+
+* Fri Sep 25 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.1.0-1
+- New upstream release
+- spec file updates:
+  * enable IB support
+  * explicitly define built-in features at configure time
+
+* Tue Sep 22 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.1-1
+- New upstream release
+- spec file updates:
+  * use proper configure macro
+
+* Tue Jul 28 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.0-3
+- spec file updates:
+  * more consistent use of macros across the board
+  * fix directory ownership
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Wed Jul  8 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.0.0-1
+- New upstream release
+
+* Thu Jul  2 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.100-1
+- New upstream release
+
+* Sat Jun 20 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.98-1
+- New upstream release
+- spec file updates:
+  * Drop corosync-trunk patch and alpha tag.
+  * Fix alphatag vs buildtrunk handling.
+  * Drop requirement on ais user/group and stop creating them.
+  * New config file locations from upstream: /etc/corosync/corosync.conf.
+
+* Wed Jun 10 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.97-1.svn2233
+- spec file updates:
+  * Update to svn version 2233 to include library linking fixes
+
+* Wed Jun 10 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.97-1.svn2232
+- New upstream release
+- spec file updates:
+  * Drop pkgconfig fix that's now upstream
+  * Update to svn version 2232
+  * Define buildtrunk if we are using svn snapshots
+  * BuildRequires: nss-devel to enable nss crypto for network communication
+  * Force autogen invokation if buildtrunk is defined
+  * Whitespace cleanup
+  * Stop shipping corosync.conf in favour of a generic example
+  * Update file list
+
+* Mon Mar 30 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.95-2
+- Backport svn commit 1913 to fix pkgconfig files generation
+  and unbreak lvm2 build.
+
+* Tue Mar 24 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.95-1
+- New upstream release
+- spec file updates:
+  * Drop alpha tag
+  * Drop local patches (no longer required)
+  * Allow to build from svn trunk by supporting rpmbuild --with buildtrunk 
+  * BuildRequires autoconf automake if building from trunk
+  * Execute autogen.sh if building from trunk and if no configure is available
+  * Switch to use rpm configure macro and set standard install paths
+  * Build invokation now supports _smp_mflags
+  * Remove install section for docs and use proper doc macro instead
+  * Add tree fixup bits to drop static libs and html docs (only for now)
+  * Add LICENSE file to all subpackages
+  * libraries have moved to libdir. Drop ld.so.conf.d corosync file
+  * Update BuildRoot usage to preferred versions/names
+
+* Tue Mar 10 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.94-5.svn1797
+- Update the corosync-trunk patch for real this time.
+
+* Tue Mar 10 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.94-4.svn1797
+- Import fixes from upstream:
+  * Cleanup logsys format init around to use default settings (1795)
+  * logsys_format_set should use its own internal copy of format_buffer (1796)
+  * Add logsys_format_get to logsys API (1797)
+- Cherry pick svn1807 to unbreak CPG.
+
+* Mon Mar  9 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.94-3.svn1794
+- Import fixes from upstream:
+  * Add reserve/release feature to totem message queue space (1793)
+  * Fix CG shutdown (1794)
+
+* Fri Mar  6 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.94-2.svn1792
+- Import fixes from upstream:
+  * Fix uninitialized memory. Spotted by valgrind (1788)
+  * Fix logsys_set_format by updating the right bits (1789)
+  * logsys: re-add support for timestamp  (1790)
+  * Fix cpg crash (1791)
+  * Allow logsys_format_set to reset to default (1792)
+
+* Tue Mar  3 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.94-1
+- New upstream release.
+- Drop obsolete patches.
+- Add soname bump patch that was missing from upstream.
+
+* Wed Feb 25 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.93-4
+- Add Makefile fix to install all corosync tools (commit r1780)
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.93-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Feb 23 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.93-2
+- Rename gcc-4.4 patch to match svn commit (r1767).
+- Backport patch from trunk (commit r1774) to fix quorum engine.
+
+* Thu Feb 19 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.93-1
+- New upstream release.
+- Drop alphatag from spec file.
+- Drop trunk patch.
+- Update Provides for corosynclib-devel.
+- Backport gcc-4.4 build fix from trunk.
+
+* Mon Feb  2 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.92-7.svn1756
+- Update to svn trunk at revision 1756 from upstream.
+- Add support pkgconfig to devel package.
+- Tidy up spec files by re-organazing sections according to packages.
+- Split libraries from corosync to corosynclib.
+- Rename corosync-devel to corosynclib-devel.
+- Comply with multiarch requirements (libraries).
+
+* Tue Jan 27 2009 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.92-6.svn1750
+- Update to svn trunk at revision 1750 from upstream.
+- Include new quorum service in the packaging.
+
+* Mon Dec 15 2008 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.92-5.svn1709
+- Update to svn trunk at revision 1709 from upstream.
+- Update spec file to include new include files.
+
+* Wed Dec 10 2008 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.92-4.svn1707
+- Update to svn trunk at revision 1707 from upstream.
+- Update spec file to include new lcrso services and include file.
+
+* Mon Oct 13 2008 Dennis Gilmore <dennis@ausil.us> - 0.92-3
+- remove ExclusiveArch line
+
+* Wed Sep 24 2008 Steven Dake <sdake@redhat.com> - 0.92-2
+- Add conflicts for openais and openais-devel packages older then 0.90.
+
+* Wed Sep 24 2008 Steven Dake <sdake@redhat.com> - 0.92-1
+- New upstream release corosync-0.92.
+
+* Sun Aug 24 2008 Steven Dake <sdake@redhat.com> - 0.91-3
+- move logsys_overview.8.* to devel package.
+- move shared libs to main package.
+
+* Wed Aug 20 2008 Steven Dake <sdake@redhat.com> - 0.91-2
+- use /sbin/service instead of calling init script directly.
+- put corosync-objctl man page in the main package.
+- change all initrddir to initddir for fedora 10 guidelines.
+
+* Thu Aug 14 2008 Steven Dake <sdake@redhat.com> - 0.91-1
+- First upstream packaged version of corosync for rawhide review.