diff --git a/Fix-compile-warnings-with-GCC-7.2.1.patch b/Fix-compile-warnings-with-GCC-7.2.1.patch
deleted file mode 100644
index 08a9254..0000000
--- a/Fix-compile-warnings-with-GCC-7.2.1.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-//cpg_test_agent: Fix snprintf compiler warnings
----
- cts/agents/cpg_test_agent.c | 8 ++++----
- exec/coroparse.c | 18 +++---------------
- lib/sam.c | 36 ++++++++++++++++++++++++++++--------
- tools/corosync-quorumtool.c | 2 +-
- 4 files changed, 36 insertions(+), 28 deletions(-)
-
-diff --git a/cts/agents/cpg_test_agent.c b/cts/agents/cpg_test_agent.c
-index 0837c69c..2224141c 100644
---- a/cts/agents/cpg_test_agent.c
-+++ b/cts/agents/cpg_test_agent.c
-@@ -211,8 +211,8 @@ static void config_change_callback (
- if (record_config_events_g > 0) {
- log_pt = malloc (sizeof(log_entry_t));
- list_init (&log_pt->list);
-- snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,left",
-- groupName->value, left_list[i].nodeid,left_list[i].pid);
-+ assert(snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,left",
-+ groupName->value, left_list[i].nodeid,left_list[i].pid) < LOG_STR_SIZE);
- list_add_tail(&log_pt->list, &config_chg_log_head);
- qb_log (LOG_INFO, "cpg event %s", log_pt->log);
- }
-@@ -221,8 +221,8 @@ static void config_change_callback (
- if (record_config_events_g > 0) {
- log_pt = malloc (sizeof(log_entry_t));
- list_init (&log_pt->list);
-- snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,join",
-- groupName->value, joined_list[i].nodeid,joined_list[i].pid);
-+ assert(snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,join",
-+ groupName->value, joined_list[i].nodeid,joined_list[i].pid) < LOG_STR_SIZE);
- list_add_tail (&log_pt->list, &config_chg_log_head);
- qb_log (LOG_INFO, "cpg event %s", log_pt->log);
- }
---
-2.13.6
-
diff --git a/_service b/_service
index 8bc2175..5facc25 100644
--- a/_service
+++ b/_service
@@ -1,21 +1,19 @@
- git://github.com/corosync/corosync.git
+ https://github.com/corosync/corosync.git
git
- .git
corosync
- 2.4.5+git@TAG_OFFSET@.%h
- needle
+ 3.1.8+%cd.%h
+ 40e08b21
enable
+
corosync*.tar
- bz2
+ gz
-
-
diff --git a/_servicedata b/_servicedata
index 107bd3f..fc76599 100644
--- a/_servicedata
+++ b/_servicedata
@@ -1,4 +1,4 @@
- git://github.com/corosync/corosync.git
- 64010f573801b73222e80821a19140c59b003f5c
\ No newline at end of file
+ https://github.com/corosync/corosync.git
+ 40e08b219de94f3850f8f39291d89a5713e32f06
\ No newline at end of file
diff --git a/baselibs.conf b/baselibs.conf
deleted file mode 100644
index 55e4a9d..0000000
--- a/baselibs.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-libcfg6
-libcmap4
-libcorosync_common4
- obsoletes "libcorosync4- < "
- provides "libcorosync4- = "
-libcpg4
-libquorum5
-libsam4
-libtotem_pg5
-libvotequorum8
diff --git a/bug-1001164_corosync.conf-example.patch b/bug-1001164_corosync.conf-example.patch
deleted file mode 100644
index 4694b00..0000000
--- a/bug-1001164_corosync.conf-example.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -Naur corosync-2.4.5/conf/corosync.conf.example corosync-2.4.5-new/conf/corosync.conf.example
---- corosync-2.4.5/conf/corosync.conf.example 2019-08-16 17:30:52.306726801 +0800
-+++ corosync-2.4.5-new/conf/corosync.conf.example 2019-08-16 17:33:25.687567471 +0800
-@@ -9,6 +9,19 @@
- crypto_cipher: none
- crypto_hash: none
-
-+ # How long before declaring a token lost (ms)
-+ token: 5000
-+
-+ # How many token retransmits before forming a new configuration
-+ token_retransmits_before_loss_const: 10
-+
-+ # How long to wait for join messages in the membership protocol (ms)
-+ join: 60
-+
-+ # Number of messages that may be sent by one processor on
-+ # receipt of the token
-+ max_messages: 20
-+
- # Limit generated nodeids to 31-bits (positive signed integers)
- # you would set it to 'yes', the new option 'new' means wiping
- # off the highest bit in network order to avoid possible nodeid
diff --git a/bug-1032634_fix-ifdown-udp.patch b/bug-1032634_fix-ifdown-udp.patch
deleted file mode 100644
index 3a126e7..0000000
--- a/bug-1032634_fix-ifdown-udp.patch
+++ /dev/null
@@ -1,363 +0,0 @@
-From ec2dfbec877fee166b31493e2dba41a850380608 Mon Sep 17 00:00:00 2001
-From: Bin Liu
-Date: Tue, 17 Apr 2018 18:04:52 +0800
-Subject: [PATCH] totemudp: Add local loop support for unicast msgs
-
----
- exec/totemudp.c | 218 ++++++++++++++++++++++++++++++++------------------------
- 1 file changed, 126 insertions(+), 92 deletions(-)
-
-diff --git a/exec/totemudp.c b/exec/totemudp.c
-index 4b644ae..ea18897 100644
---- a/exec/totemudp.c
-+++ b/exec/totemudp.c
-@@ -205,8 +205,6 @@ static int totemudp_build_sockets (
- struct totemudp_socket *sockets,
- struct totem_ip_address *bound_to);
-
--static struct totem_ip_address localhost;
--
- static void totemudp_instance_initialize (struct totemudp_instance *instance)
- {
- memset (instance, 0, sizeof (struct totemudp_instance));
-@@ -267,6 +265,7 @@ static inline void ucast_sendmsg (
- struct sockaddr_storage sockaddr;
- struct iovec iovec;
- int addrlen;
-+ int send_sock;
-
- if (msg_len + crypto_get_current_sec_header_size(instance->crypto_inst) > sizeof(buf_out)) {
- log_printf(LOGSYS_LEVEL_CRIT, "UDP message for ucast is too big. Ignoring message");
-@@ -317,11 +316,19 @@ static inline void ucast_sendmsg (
- #endif
-
-
-+ if (instance->netif_bind_state == BIND_STATE_REGULAR) {
-+ send_sock = instance->totemudp_sockets.mcast_send;
-+ } else {
-+ send_sock = instance->totemudp_sockets.local_mcast_loop[1];
-+ msg_ucast.msg_name = NULL;
-+ msg_ucast.msg_namelen = 0;
-+ }
-+
- /*
- * Transmit unicast message
- * An error here is recovered by totemsrp
- */
-- res = sendmsg (instance->totemudp_sockets.mcast_send, &msg_ucast,
-+ res = sendmsg (send_sock, &msg_ucast,
- MSG_NOSIGNAL);
- if (res < 0) {
- LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-@@ -390,18 +397,20 @@ static inline void mcast_sendmsg (
- msg_mcast.msg_accrightslen = 0;
- #endif
-
-- /*
-- * Transmit multicast message
-- * An error here is recovered by totemsrp
-- */
-- res = sendmsg (instance->totemudp_sockets.mcast_send, &msg_mcast,
-- MSG_NOSIGNAL);
-- if (res < 0) {
-- LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-- "sendmsg(mcast) failed (non-critical)");
-- instance->stats->continuous_sendmsg_failures++;
-- } else {
-- instance->stats->continuous_sendmsg_failures = 0;
-+ if (instance->netif_bind_state == BIND_STATE_REGULAR) {
-+ /*
-+ * Transmit multicast message
-+ * An error here is recovered by totemsrp
-+ */
-+ res = sendmsg (instance->totemudp_sockets.mcast_send, &msg_mcast,
-+ MSG_NOSIGNAL);
-+ if (res < 0) {
-+ LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-+ "sendmsg(mcast) failed (non-critical)");
-+ instance->stats->continuous_sendmsg_failures++;
-+ } else {
-+ instance->stats->continuous_sendmsg_failures = 0;
-+ }
- }
-
- /*
-@@ -580,7 +589,6 @@ static void timer_function_netif_check_timeout (
- struct totemudp_instance *instance = (struct totemudp_instance *)data;
- int interface_up;
- int interface_num;
-- struct totem_ip_address *bind_address;
-
- /*
- * Build sockets for every interface
-@@ -617,28 +625,31 @@ static void timer_function_netif_check_timeout (
- qb_loop_poll_del (instance->totemudp_poll_handle,
- instance->totemudp_sockets.mcast_recv);
- close (instance->totemudp_sockets.mcast_recv);
-+ instance->totemudp_sockets.mcast_recv = -1;
- }
- if (instance->totemudp_sockets.mcast_send > 0) {
- close (instance->totemudp_sockets.mcast_send);
-- }
-- if (instance->totemudp_sockets.local_mcast_loop[0] > 0) {
-- qb_loop_poll_del (instance->totemudp_poll_handle,
-- instance->totemudp_sockets.local_mcast_loop[0]);
-- close (instance->totemudp_sockets.local_mcast_loop[0]);
-- close (instance->totemudp_sockets.local_mcast_loop[1]);
-+ instance->totemudp_sockets.mcast_send = -1;
- }
- if (instance->totemudp_sockets.token > 0) {
- qb_loop_poll_del (instance->totemudp_poll_handle,
- instance->totemudp_sockets.token);
- close (instance->totemudp_sockets.token);
-+ instance->totemudp_sockets.token = -1;
- }
-
- if (interface_up == 0) {
-+ if (instance->netif_bind_state == BIND_STATE_UNBOUND) {
-+ log_printf (instance->totemudp_log_level_error,
-+ "One of your ip addresses are now bound to localhost. "
-+ "Corosync would not work correctly.");
-+ exit(COROSYNC_DONE_FATAL_ERR);
-+ }
-+
- /*
- * Interface is not up
- */
- instance->netif_bind_state = BIND_STATE_LOOPBACK;
-- bind_address = &localhost;
-
- /*
- * Add a timer to retry building interfaces and request memb_gather_enter
-@@ -654,34 +665,29 @@ static void timer_function_netif_check_timeout (
- * Interface is up
- */
- instance->netif_bind_state = BIND_STATE_REGULAR;
-- bind_address = &instance->totem_interface->bindnet;
- }
- /*
- * Create and bind the multicast and unicast sockets
- */
- (void)totemudp_build_sockets (instance,
- &instance->mcast_address,
-- bind_address,
-+ &instance->totem_interface->bindnet,
- &instance->totemudp_sockets,
- &instance->totem_interface->boundto);
-
-- qb_loop_poll_add (
-- instance->totemudp_poll_handle,
-- QB_LOOP_MED,
-- instance->totemudp_sockets.mcast_recv,
-- POLLIN, instance, net_deliver_fn);
--
-- qb_loop_poll_add (
-- instance->totemudp_poll_handle,
-- QB_LOOP_MED,
-- instance->totemudp_sockets.local_mcast_loop[0],
-- POLLIN, instance, net_deliver_fn);
-+ if (instance->netif_bind_state == BIND_STATE_REGULAR) {
-+ qb_loop_poll_add (
-+ instance->totemudp_poll_handle,
-+ QB_LOOP_MED,
-+ instance->totemudp_sockets.mcast_recv,
-+ POLLIN, instance, net_deliver_fn);
-
-- qb_loop_poll_add (
-- instance->totemudp_poll_handle,
-- QB_LOOP_MED,
-- instance->totemudp_sockets.token,
-- POLLIN, instance, net_deliver_fn);
-+ qb_loop_poll_add (
-+ instance->totemudp_poll_handle,
-+ QB_LOOP_MED,
-+ instance->totemudp_sockets.token,
-+ POLLIN, instance, net_deliver_fn);
-+ }
-
- totemip_copy (&instance->my_id, &instance->totem_interface->boundto);
-
-@@ -732,6 +738,66 @@ static void totemudp_traffic_control_set(struct totemudp_instance *instance, int
- #endif
- }
-
-+static int totemudp_build_local_sockets(
-+ struct totemudp_instance *instance,
-+ struct totemudp_socket *sockets)
-+{
-+ int i;
-+ unsigned int sendbuf_size;
-+ unsigned int recvbuf_size;
-+ unsigned int optlen = sizeof (sendbuf_size);
-+ int res;
-+
-+ /*
-+ * Create local multicast loop socket
-+ */
-+ if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets->local_mcast_loop) == -1) {
-+ LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
-+ "socket() failed");
-+ return (-1);
-+ }
-+
-+ for (i = 0; i < 2; i++) {
-+ totemip_nosigpipe (sockets->local_mcast_loop[i]);
-+ res = fcntl (sockets->local_mcast_loop[i], F_SETFL, O_NONBLOCK);
-+ if (res == -1) {
-+ LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
-+ "Could not set non-blocking operation on multicast socket");
-+ return (-1);
-+ }
-+ }
-+
-+ recvbuf_size = MCAST_SOCKET_BUFFER_SIZE;
-+ sendbuf_size = MCAST_SOCKET_BUFFER_SIZE;
-+
-+ res = setsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, &recvbuf_size, optlen);
-+ if (res == -1) {
-+ LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-+ "Unable to set SO_RCVBUF size on UDP local mcast loop socket");
-+ return (-1);
-+ }
-+ res = setsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, &sendbuf_size, optlen);
-+ if (res == -1) {
-+ LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-+ "Unable to set SO_SNDBUF size on UDP local mcast loop socket");
-+ return (-1);
-+ }
-+
-+ res = getsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, &recvbuf_size, &optlen);
-+ if (res == 0) {
-+ log_printf (instance->totemudp_log_level_debug,
-+ "Local receive multicast loop socket recv buffer size (%d bytes).", recvbuf_size);
-+ }
-+
-+ res = getsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, &sendbuf_size, &optlen);
-+ if (res == 0) {
-+ log_printf (instance->totemudp_log_level_debug,
-+ "Local transmit multicast loop socket send buffer size (%d bytes).", sendbuf_size);
-+ }
-+
-+ return (0);
-+}
-+
- static int totemudp_build_sockets_ip (
- struct totemudp_instance *instance,
- struct totem_ip_address *mcast_address,
-@@ -755,7 +821,6 @@ static int totemudp_build_sockets_ip (
- int res;
- int flag;
- uint8_t sflag;
-- int i;
-
- /*
- * Create multicast recv socket
-@@ -786,27 +851,6 @@ static int totemudp_build_sockets_ip (
- }
-
- /*
-- * Create local multicast loop socket
-- */
-- if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets->local_mcast_loop) == -1) {
-- LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
-- "socket() failed");
-- return (-1);
-- }
--
-- for (i = 0; i < 2; i++) {
-- totemip_nosigpipe (sockets->local_mcast_loop[i]);
-- res = fcntl (sockets->local_mcast_loop[i], F_SETFL, O_NONBLOCK);
-- if (res == -1) {
-- LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
-- "Could not set non-blocking operation on multicast socket");
-- return (-1);
-- }
-- }
--
--
--
-- /*
- * Setup mcast send socket
- */
- sockets->mcast_send = socket (bindnet_address->family, SOCK_DGRAM, 0);
-@@ -930,18 +974,6 @@ static int totemudp_build_sockets_ip (
- "Unable to set SO_SNDBUF size on UDP mcast socket");
- return (-1);
- }
-- res = setsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, &recvbuf_size, optlen);
-- if (res == -1) {
-- LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-- "Unable to set SO_RCVBUF size on UDP local mcast loop socket");
-- return (-1);
-- }
-- res = setsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, &sendbuf_size, optlen);
-- if (res == -1) {
-- LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-- "Unable to set SO_SNDBUF size on UDP local mcast loop socket");
-- return (-1);
-- }
-
- res = getsockopt (sockets->mcast_recv, SOL_SOCKET, SO_RCVBUF, &recvbuf_size, &optlen);
- if (res == 0) {
-@@ -955,19 +987,6 @@ static int totemudp_build_sockets_ip (
- "Transmit multicast socket send buffer size (%d bytes).", sendbuf_size);
- }
-
-- res = getsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, &recvbuf_size, &optlen);
-- if (res == 0) {
-- log_printf (instance->totemudp_log_level_debug,
-- "Local receive multicast loop socket recv buffer size (%d bytes).", recvbuf_size);
-- }
--
-- res = getsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, &sendbuf_size, &optlen);
-- if (res == 0) {
-- log_printf (instance->totemudp_log_level_debug,
-- "Local transmit multicast loop socket send buffer size (%d bytes).", sendbuf_size);
-- }
--
--
- /*
- * Join group membership on socket
- */
-@@ -1256,8 +1275,19 @@ int totemudp_initialize (
-
- instance->totemudp_target_set_completed = target_set_completed;
-
-- totemip_localhost (instance->mcast_address.family, &localhost);
-- localhost.nodeid = instance->totem_config->node_id;
-+ /*
-+ * Create static local mcast sockets
-+ */
-+ if (totemudp_build_local_sockets(instance, &instance->totemudp_sockets) == -1) {
-+ free(instance);
-+ return (-1);
-+ }
-+
-+ qb_loop_poll_add (
-+ instance->totemudp_poll_handle,
-+ QB_LOOP_MED,
-+ instance->totemudp_sockets.local_mcast_loop[0],
-+ POLLIN, instance, net_deliver_fn);
-
- /*
- * RRP layer isn't ready to receive message because it hasn't
-@@ -1320,10 +1350,14 @@ int totemudp_recv_flush (void *udp_context)
- for (i = 0; i < 2; i++) {
- sock = -1;
- if (i == 0) {
-- sock = instance->totemudp_sockets.mcast_recv;
-+ if (instance->netif_bind_state == BIND_STATE_REGULAR) {
-+ sock = instance->totemudp_sockets.mcast_recv;
-+ } else {
-+ continue;
-+ }
- }
- if (i == 1) {
-- sock = instance->totemudp_sockets.local_mcast_loop[0];
-+ sock = instance->totemudp_sockets.local_mcast_loop[0];
- }
- assert(sock != -1);
-
---
-2.13.6
-
diff --git a/bug-1083561_upgrade-from-1-x-y.patch b/bug-1083561_upgrade-from-1-x-y.patch
deleted file mode 100644
index 4bc094c..0000000
--- a/bug-1083561_upgrade-from-1-x-y.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- corosync-2.4.5/init/upgrade.sh 1970-01-01 08:00:00.000000000 +0800
-+++ corosync-2.4.5-new/init/upgrade.sh 2019-08-02 17:15:38.224559371 +0800
-@@ -0,0 +1,18 @@
-+#! /bin/bash
-+CONFIG_FILE=/etc/corosync/corosync.conf
-+CONFIG_FILE_OLD=/etc/corosync/corosync.conf.old
-+
-+if [ -f $CONFIG_FILE ]; then
-+ cp $CONFIG_FILE $CONFIG_FILE_OLD
-+ #lots of operations
-+ sed -i "/amf\ *{/,/\ *}/d" $CONFIG_FILE && \
-+ sed -i "/aisexec\ *{/,/\ *}/d" $CONFIG_FILE && \
-+ sed -i "/service\ *{/,/\ *}/d" $CONFIG_FILE && \
-+ #sed -i "/token:/,/max_messages:/d" $CONFIG_FILE && \
-+ sed -i "s/AMF/QUORUM/g" $CONFIG_FILE
-+ if [ $? -ne 0 ]; then
-+ cp $CONFIG_FILE_OLD $CONFIG_FILE
-+ else
-+ rm $CONFIG_FILE_OLD
-+ fi
-+fi
diff --git a/bug-882449_corosync-conf-example.patch b/bug-882449_corosync-conf-example.patch
deleted file mode 100644
index 7ad7119..0000000
--- a/bug-882449_corosync-conf-example.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Index: corosync-2.3.3/conf/corosync.conf.example
-===================================================================
---- corosync-2.3.3.orig/conf/corosync.conf.example
-+++ corosync-2.3.3/conf/corosync.conf.example
-@@ -9,6 +9,12 @@ totem {
- crypto_cipher: none
- crypto_hash: none
-
-+ # Limit generated nodeids to 31-bits (positive signed integers)
-+ # you would set it to 'yes', the new option 'new' means wiping
-+ # off the highest bit in network order to avoid possible nodeid
-+ # conflicting.
-+ clear_node_high_bit: yes
-+
- # interface: define at least one interface to communicate
- # over. If you define more than one interface stanza, you must
- # also set rrp_mode.
-@@ -58,8 +64,8 @@ logging {
- to_stderr: no
- # Log to a log file. When set to "no", the "logfile" option
- # must not be set.
-- to_logfile: yes
-- logfile: /var/log/cluster/corosync.log
-+ #to_logfile: no
-+ #logfile: /var/log/cluster/corosync.log
- # Log to the system log daemon. When in doubt, set to yes.
- to_syslog: yes
- # Log debug messages (very verbose). When in doubt, leave off.
-@@ -77,5 +83,5 @@ logging {
- quorum {
- # Enable and configure quorum subsystem (default: off)
- # see also corosync.conf.5 and votequorum.5
-- #provider: corosync_votequorum
-+ provider: corosync_votequorum
- }
-Index: corosync-2.3.3/conf/corosync.conf.example.udpu
-===================================================================
---- corosync-2.3.3.orig/conf/corosync.conf.example.udpu
-+++ corosync-2.3.3/conf/corosync.conf.example.udpu
-@@ -5,6 +5,8 @@ totem {
- crypto_cipher: none
- crypto_hash: none
-
-+ clear_node_high_bit: yes
-+
- interface {
- ringnumber: 0
- bindnetaddr: 10.16.35.0
-@@ -16,9 +18,9 @@ totem {
-
- logging {
- fileline: off
-- to_logfile: yes
-+ #to_logfile: no
- to_syslog: yes
-- logfile: /var/log/cluster/corosync.log
-+ #logfile: /var/log/cluster/corosync.log
- debug: off
- timestamp: on
- logger_subsys {
-@@ -54,5 +56,5 @@ nodelist {
- quorum {
- # Enable and configure quorum subsystem (default: off)
- # see also corosync.conf.5 and votequorum.5
-- #provider: corosync_votequorum
-+ provider: corosync_votequorum
- }
diff --git a/corosync-2.3.4-fix-bashisms.patch b/corosync-2.3.4-fix-bashisms.patch
deleted file mode 100644
index f58f577..0000000
--- a/corosync-2.3.4-fix-bashisms.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- corosync-2.3.5.orig/cts/agents/mem_leak_test.sh 2015-07-21 13:47:30.058803324 +0800
-+++ corosync-2.3.5/cts/agents/mem_leak_test.sh 2015-07-27 10:03:53.903380662 +0800
-@@ -41,14 +41,14 @@
- find $f | sed "s|\.|_|g" | sed "s|/|.|g" | while read l
- do
- echo $l.count u64 $COUNT >> $temp_file
-- let COUNT="$COUNT+1"
-+ COUNT="$COUNT+1"
- done
-
- corosync-cmapctl -p $temp_file
- corosync-cmapctl -D usr
- done
- AFTER=$(get_mem $TYPE)
-- let DIFF="$AFTER - $BEFORE"
-+ DIFF="$AFTER - $BEFORE"
- rm -f $temp_file
- #echo $f diff $TYPE $DIFF
- echo $DIFF
-@@ -76,11 +76,11 @@
- find /usr/bin | sed "s|\.|_|g" | sed "s|/|.|g" | while read l
- do
- corosync-cmapctl -s $l u32 $COUNT
-- let COUNT="$COUNT+1"
-+ COUNT="$COUNT+1"
- done
- corosync-cmapctl -D usr
- AFTER=$(get_mem $TYPE)
-- let DIFF="$AFTER - $BEFORE"
-+ DIFF="$AFTER - $BEFORE"
- echo $DIFF
-
- exit 0
diff --git a/corosync-2.4.6.tar.gz b/corosync-2.4.6.tar.gz
deleted file mode 100644
index 4868dd7..0000000
--- a/corosync-2.4.6.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cb572b99df91c2abb98b52c8b1313b89b6146d212b0e0028203cfecafe942fba
-size 1268555
diff --git a/corosync-3.1.8.tar.gz b/corosync-3.1.8.tar.gz
new file mode 100644
index 0000000..4a142ca
--- /dev/null
+++ b/corosync-3.1.8.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7023544fa3bb36c00bbcabd9935b7269b41d896738a108ed32ea9b9c9b27ec3d
+size 1169570
diff --git a/corosync-init-lockfile-path-error.patch b/corosync-init-lockfile-path-error.patch
deleted file mode 100644
index 862d02d..0000000
--- a/corosync-init-lockfile-path-error.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -Naur corosync-2.4.5/init/corosync.in corosync-2.4.5-new/init/corosync.in
---- corosync-2.4.5/init/corosync.in 2019-08-16 18:38:12.029553632 +0800
-+++ corosync-2.4.5-new/init/corosync.in 2019-08-16 18:39:59.138161517 +0800
-@@ -30,6 +30,7 @@
- success()
- {
- echo -ne "[ OK ]\r"
-+ rtrn=0
- }
-
- failure()
-@@ -150,6 +151,7 @@
- # they also assume that init scripts will create
- # required subdirectories for proper operations
- mkdir -p @LOCALSTATEDIR@/run
-+ mkdir -p @LOCALSTATEDIR@/lock/subsys
-
- if status -p "$prog_pid_file" "$prog" > /dev/null 2>&1; then
- success
diff --git a/corosync-start-stop-level.patch b/corosync-start-stop-level.patch
deleted file mode 100644
index a7f4a5e..0000000
--- a/corosync-start-stop-level.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From b827e7f33fee652a79713d302aa9be56b456fa7d Mon Sep 17 00:00:00 2001
-From: Bin Liu
-Date: Wed, 19 Oct 2016 15:59:17 +0800
-Subject: [PATCH] modify default run level for corosync daemons
-
----
- init/corosync-qdevice.in | 4 ++--
- init/corosync-qnetd.in | 4 ++--
- init/corosync.in | 4 ++--
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/init/corosync-qdevice.in b/init/corosync-qdevice.in
-index 913e033..4949c4e 100755
---- a/init/corosync-qdevice.in
-+++ b/init/corosync-qdevice.in
-@@ -13,8 +13,8 @@
- # Provides: corosync-qdevice
- # Required-Start: $corosync
- # Required-Stop: $corosync
--# Default-Start:
--# Default-Stop:
-+# Default-Start: 3
-+# Default-Stop: 1
- # Short-Description: Starts and stops Corosync Qdevice daemon.
- # Description: Starts and stops Corosync Qdevice daemon.
- ### END INIT INFO
-diff --git a/init/corosync-qnetd.in b/init/corosync-qnetd.in
-index 15d30ea..ed73ee0 100755
---- a/init/corosync-qnetd.in
-+++ b/init/corosync-qnetd.in
-@@ -13,8 +13,8 @@
- # Provides: corosync-qnetd
- # Required-Start: $network $syslog
- # Required-Stop: $network $syslog
--# Default-Start:
--# Default-Stop:
-+# Default-Start: 3
-+# Default-Stop: 1
- # Short-Description: Starts and stops Corosync Qdevice Network daemon.
- # Description: Starts and stops Corosync Qdevice Network daemon.
- ### END INIT INFO
-diff --git a/init/corosync.in b/init/corosync.in
-index c93f971..366b5d6 100755
---- a/init/corosync.in
-+++ b/init/corosync.in
-@@ -14,8 +14,8 @@
- # Provides: corosync
- # Required-Start: $network $syslog
- # Required-Stop: $network $syslog
--# Default-Start:
--# Default-Stop:
-+# Default-Start: 3
-+# Default-Stop: 1
- # Short-Description: Starts and stops Corosync Cluster Engine.
- # Description: Starts and stops Corosync Cluster Engine.
- ### END INIT INFO
---
-2.6.6
-
diff --git a/corosync.changes b/corosync.changes
index 785e822..318968d 100644
--- a/corosync.changes
+++ b/corosync.changes
@@ -1,3 +1,564 @@
+-------------------------------------------------------------------
+Wed May 15 12:18:23 UTC 2024 - Emil Penchev
+
+- Update to version 3.1.8
+ * Handling integer overflow issues
+ * rust: Improve vector initialisation
+ * man: Update the corosync_overview manpage
+ * config: Fail to start if ping timers are invalid
+ * rust: Remove some pointless casts
+ * parser: Allow a non-breaking space as 'whitespace'
+ * spec: Migrate to SPDX license
+ * build: Fix rust make -j build dep for distcheck
+ * rust: Remove tests from check scripts
+ * Rust: Remove obsolete bindgen flag
+ * knet: use knet TRACE logging level if available
+ * Rust: 'fix' clippys for Rust 1.67
+ * rust: Make it work on FreeBSD
+ * bindings: Add Rust bindings
+ * totemconfig: Add support for knet_mtu
+ * configure: Modernize configure.ac a bit
+ * log: Configure knet logging to the same as corosync
+ * logrotate: Use copytruncate method by default
+ * totemconfig: Check uname return value correctly
+ * totempg: Fix alignment handling
+ * pkgconfig: Export corosysconfdir
+ * Remove bashism from configure script
+ * totemudpu: Don't block local socketpair
+ * build: Add explicit dependency for used libraries
+ * totemsrp: Switch totempg buffers at the right time
+ * cpghum: Allow to continue if corosync is restarted
+ * man: Fix consensus timeout
+ * logsys: Unlock config mutex on error
+ * totem: Add cancel_hold_on_retransmit config option
+ * totemconfig: Knet nodeid must be < 65536
+ * totemconfig: Ensure all knet hosts has a nodeid
+ * cfgtool: Use CS_PRI_NODE_ID for formatting nodeid
+ * cfgtool: Fix brief mode display of localhost
+ * cfgtool: Set nodeid indexes after sort
+ * totemconfig: Put autogenerated nodeid back to cmap
+ * cfgtool: Check existence of at least one of nodeid
+ * totemconfig: Do not process totem.nodeid
+ * knet: Fix node status display
+ * main: Add support for cgroup v2 and auto mode
+ * stats: fix crash when iterating over deleted keys
+ * man: Add note about single node configuration
+ * Revert "main: Add support for cgroup v2"
+ * Revert "man: Add info about cgroup v2 behavior"
+ * man: Add info about cgroup v2 behavior
+ * cfg: corosync_cfg_trackstop blocks forever
+ * main: Add support for cgroup v2
+ * main: Mark crypto_model key read only
+ * totemconfig: Ensure strncpy is always terminated
+ * config: Properly check crypto and compress models
+ * man: corosync-cfgtool.8: use proper single quotes
+ * knet: pass correct handle to knet_handle_compress
+ * totemconfig: fix integer underflow and logic bug
+ * totemconfig: change udp netmtu value as a constant
+ * totemknet: retry knet_handle_new if it fails
+ * main: Check memlock rlimit
+ * configure: drop unnecessary check and define
+ * configure: move exec_prefix sanitize
+ * configure: drop dead code
+ * configure: detect and init pkg-config with macro
+ * main: Close race condition when moving to statedir
+ * init: Use corosync-cfgtool for shutdown
+ * test: Add testcfg to exercise some cfg functions
+ * cfg: Reinstate cfg tracking
+ * cfg: Improve nodestatusget versioning
+ * cfg: New API to get extended node/link infomation
+ * totemknet: Check both cipher and hash for crypto
+ * The ring id file needn't be executable
+ * pkgconfig: export LOGDIR in corosync.pc
+ * spec: Add isa version of corosync-devel provides
+ * totemconfig: remove redundant nodeid error log
+ * totemsrp: More informative messages
+ * config: Increase default token timeout to 3000 ms
+ * man: votequorum.5: use proper single quotes
+ * man: fix typo: avaialable
+ * tests: Use CS_DISPATCH_BLOCKING instead of cycle
+ * quorum: Add support for nodelist callback
+ * man: reload during rolling upgrade
+ * totemsrp: Move token received callback
+ * common_lib: Remove trailing spaces in cs_strerror
+ * totemconfig: improve linknumber checking
+ * totemconfig: add interface number to the error str
+ * cfg: enhance message_handler_req_lib_cfg_killnode
+ * totemconfig: validate totem.transport value
+ * cmapctl: return error on no result of print prefix
+ * cmapctl: check NULL for key type and value for -p
+ * quorumtool: strict check for -o option
+ * quorumtool: Help shouldn't require running service
+ * cfgtool: Return error when -i doesn't match
+ * man: update output of -s and -b for cfgtool
+ * cmapctl: return EXIT_FAILURE on failure
+ * tools: use util_strtonum for options checking
+ * cfgtool: enhancement -a option
+ * cfgtool: output error messages to stderr
+ * configure: Use default systemd path with prefix
+ * build: Use git-version-gen during specfile build
+ * build: Update git-version-gen
+ * spec: Require at least knet 1.18 for crypto reload
+ * config: Allow reconfiguration of crypto options
+ * test: Fix cpgtest
+ * config: Fix crash when a reload fails twice
+ * config: Don't free pointers used by transports
+ * config: don't reload vquorum if reload fails
+ * cfg: Improve error return to cfgtool -R
+ * config: Reorganise the config system
+ * Revert "totemip: compare sin6_scope_id and interface_num"
+ * Revert "totemip: Add support for sin6_scope_id"
+ * cfgtool: Fix error code as described in MP
+ * icmap: icmap_init_r() leaks if trie_create() fails
+ * votequorum: set wfa status only on startup
+ * quorumtool: exit on invalid expected votes
+ * votequorum: Change check of expected_votes
+ * cfgtool: Simplify output a bit for link status
+ * man: Enhance link_mode priority description
+ * main: Add schedmiss timestamp into message
+ * totemip: compare sin6_scope_id and interface_num
+ * totemip: Really remove totemip_copy_endian_convert
+ * totemip: Remove unused totemip_copy_endian_convert
+ * totemip: Add support for sin6_scope_id
+ * cfgtool: Improve link status display
+ * totemknet: Change the initial value of the status
+ * stats: Use nanoseconds from epoch for schedmiss
+ * stats: Add stats for scheduler misses
+ * votequorum: Reflect runtime change of 2Node to WFA
+ * cpg: Change downlist log level
+ * man: move cmap_keys man page from section 8 to 7
+ * stats: Check return code of stats_map_get
+ * quorumtool: Assert copied string length
+ * notifyd: Check cmap_track_add result
+ * cmapctl: Free bin_value on error
+ * cfgtool: Remove unused callbacks
+ * cpghum: Remove unused time variables and functions
+ * votequorum: Assert copied strings length
+ * totemknet: Assert strcpy length
+ * totemknet: Check result of fcntl O_NONBLOCK call
+ * totemconfig: Initialize warnings variable
+ * sync: Assert sync_callbacks.name length
+ * totemknet: Don't mix corosync and knet error codes
+ * stats: Assert value_len when value is needed
+ * cmap: Assert copied string length
+ * totemconfig: Reuse already fetched pointer
+ * logconfig: Remove double free of value
+ * votequorum: Ignore the icmap_get_* return value
+ * totemconfig: Free leaks found by coverity
+ * icmap: fix the icmap_get_*_r functions
+ * pkgconfig: Add libqb dependency
+ * Initialize stack allocated memory
+ * man: Fix corosync.conf knet pong count default
+ * totemsrp: Reduce MTU to left room second mcast
+ * totempg: Check sanity (length) of received message
+ * build: add option for enabling sanitizer builds
+ * totemknet: Add locking for log call
+ * man: Fix link_mode priority description
+ * notifyd: Don't dereference NULL key_name
+ * totem: Increase ring_id seq after load
+ * init: Use cpgtool instead of cfgtool
+ * notifyd: Fix warning produced by 32-bit compiler
+ * cfgtool: Remove unused code
+ * logging: Add CS_PRI_NODE_ID and CS_PRI_RING_ID
+ * vqsim: Fix gitignore
+ * totemknet: Disable forwarding on shutdown
+ * totemconfig: Fix compiler warning
+ * totem: fix check if all nodes have same number of links
+ * totem: fix check if all nodes have name attrs in multi-link setups
+ * corosync-notifyd: Add option to disable DNS lookup
+ * totemsrp: Fix warnings produced by gcc 9.1
+ * cpg: Move filling of member_list to subfunction
+ * cpg: Add more comments to notify_lib_joinlist
+ * cpg: send single confchg event per group on joinlist
+ * cpg: notify_lib_joinlist: drop conn parameter
+ * vqsim: Check length of copied optarg
+ * vqsim: Check result of icmap_set_uint32
+ * vqsim: Remove unused total_nodes
+ * vqsim: Free allocated newvq on error
+ * vqsim: Check length of received message
+ * vqsim: Check write result
+ * vqsim: Do not access unitialized argv[0]
+ * totemknet: Initialize return value in setup_nozzle
+ * totemknet: macaddr_str is always set
+ * totemknet: Ignore icmap_get_string result
+ * totemknet: create_nozzle_device simplify check
+ * totemip: Use res in totemip_sa_equal
+ * totemconfig: ipaddr_equal use switch
+ * configure: Fix GDB_CFLAGS typo
+ * man: Add vqsim man page into distributed tarball
+ * spec: Add support for user-flags configure option
+ * man: Enahnce block_unlisted_ips description
+ * man: Enhance corosync.conf mp a bit
+ * cfgtool: Fix link status display
+ * knet: Use block_unlisted_ips
+ * udpu: Drop packets from unlisted IPs
+ * knet: Fix initialising of knet access lists.
+ * knet: allow corosync to use knet access lists
+ * man: Enhance token_retransmit description
+ * totemconfig: Fix minimum limit for hold timeout
+ * vqsim: Enhance vqsim
+ * knet: Fix a couple of errors when adding a new link
+ * totemconfig: fix autogen mcastaddr for ipv6-4
+ * totemconfig: Ensure nodeid is specified for IPv6
+ * vqsim: Fix vqsim for corosync 3.0
+ * vqsim: Make vqsim compile
+ * totemconfig: ipaddr_equal check just addr part
+ * cpg: Add CPG_REASON_UNDEFINED
+ * crypto: re-introduce secauth parameter
+ * totemconfig: Remove support for 3des
+ * keygen: Reflect change in knet
+ * set totem.keyfile and totem.key to RO
+ * Revert "init: Enable StopWhenUnneeded"
+ * totemsrp: Word spelling mistake
+ * coroparse: Fix compiler warning
+ * configure: Do not autodetect nozzle
+ * nozzle: Add support for libnozzle devices
+ * quorumtool: Fix exit status codes
+ * corosync-cfgtool: Fix -i matching
+ * build: Use the AWK variable provided by configure
+ * build: Use the SED variable provided by configure
+ * configure.ac: AC_PROG_SED is already present
+ * corosync.conf.5: typography fixes
+ * corosync.conf.5: fix grammar
+ * cfgtool: Improve link status display
+ * doc: Update INSTALL file
+ * init: Enable StopWhenUnneeded
+ * totemip: Use AF_UNSPEC for ipv4-6 and ipv6-4
+ * [totemknet] update for libknet.so.2.0.0 init API
+ * Config version must be specified
+ * Don't declare success early
+ * More natural error messages
+ * main: Rename run_dir to state_dir
+ * totemconfig: Enhance totem.ip_version
+ * totemip: Add debug information to totemip_parse
+ * totemconfig: Add IPs to family mismatch error
+ * config: Look up hostnames in a defined order
+ * Fix corosync.conf.5 manpage typos
+ * man: Add some information about address resolution
+ * totemconfig: Really use totemip_parse results
+ * man: Add instructions for adding/removing nodes
+ * config: Disallow corosync-cmapctl updates of nodelist
+ * config: Report IP addr/nodename parse errors back
+ * coroparse: Remove unused cs_err initialization
+ * cpghum: Check cpg_local_get return code
+ * testcpg2: Check cpg_dispatch return code
+ * notifyd: Delete registered tracking keys
+ * stats: Fix delete of track
+ * init: Fix init script to work with containers
+ * main: Remove COROSYNC_RUN_DIR
+ * man: Describe nodelist.node.name properly
+ * main: Remove COROSYNC_TOTEM_AUTHKEY_FILE
+ * main: Replace COROSYNC_MAIN_CONFIG_FILE
+ * main: Move sched paramaters to config file
+ * configure: move to AC_COMPILE_IFELSE
+ * logsys: Make hires timestamp default
+ * logsys: Support hires timestamp
+ * totemconfig: Fix logging of freed string
+ * config: Allow generated nodeis for UDP & UDPU
+ * config example: Migrate to newer syntax
+ * log: Implement support for reopening log files
+ * totemconfig: Replace strcpy by strncpy
+ * config: Fix crash in reload if new interfaces are added
+ * man: Fix default knet_pmtud_interval to match code
+ * build: Remove totempg shared library leftovers
+ * build: Do not compile totempg as a shared library
+ * man: Fix typo conains -> contains
+ * man: Fix typo connnections -> connections
+ * build: Remove NSS dependencies
+ * cts: Remove CTS
+ * man: Fix crypto_hash and crypto_cipher defaults
+ * coroparse: Fix newly introduced warning
+ * Add option to force cluster into GATHER state
+ * coroparse: Use key_name for error message
+ * coroparse: Add file name and line to error message
+ * coroparse: Be more strict in what is parsed
+ * coroparse: Fix remove_whitespace end condition
+ * coroparse: Check icmap_set results
+ * coroparse: Return error if config line is too long
+ * notifyd: Propagate error to exit code
+ * git-version-gen: Fail on UNKNOWN version
+ * build: Support for git archive stored tags
+ * man: fix cmap key name runtime.config.totem.token
+ * Remove libcgroup
+ * systemd: prevent redundancy in journal
+ * Add token_warning configuration option
+ * corosync-notifyd: Rename global local_nodeid
+ * totemsrp: Add assert into memb_lowest_in_config
+ * totemconfig: Enlarge error_string_response
+ * ipc_glue: Fix strncpy in pid_to_name function
+ * cmap: Fix strncpy warning in cmap_iter_next
+ * util: Fix strncpy in setcs_name_t function
+ * totemknet: Free instance on failure exit
+ * spec: Add explicit gcc build requirement
+ * Add option for quiet operation to corosync-cmapctl
+ * totemudpu: Pass correct paramto totemip_nosigpipe
+ * totemudpu: Add local loop support
+ * config: Fail config validation if not all nodes have all links
+ * config: Enforce use of 'name' node attribute in multi-link clusters
+ * totemconfig: Check for things that cannot be changed on the fly
+ * Fix snprintf warnings
+ * init: Use existing env variable from sysconf
+ * upstart: Remove notifyd upstart unit
+ * knet: Don't try to create loopback interface twice
+ * knet: Fix knet log buffer size
+ * cpg: Inform clients about left nodes during pause
+ * man: Make the manpages reproducible
+ * totemsrp: Fix leave message regression
+ * totemsrp: Log proc/fail lists in memb_join_process
+ * totemsrp: Fix srp_addr_compare
+ * tools: don't distribute what we can easily make
+ * Drop all references to SECURITY file
+ * SECURITY: Remove SECURITY file
+ * NSS_NoDB_Init: the parameter is reserved, must be NULL
+ * Fix typo: defualt -> default
+ * Fix typo: sucesfully -> successfully
+ * totemsrp: Check join and leave msg length
+ * totemsrp: Implement sanity checks of received msgs
+ * cpg: Handle fragmented message sending interrupt
+ * totem: Display IP of sender
+ * totemsrp: Add magic and version into header
+ * knet: Fix display of links with unconfigured link0
+ * main: Set errno before calling of strtol
+ * quorumtool: Don't set our_flags without v_handle
+ * sam_test_agent: Remove unused assignment
+ * blackbox: Quote subshell result properly
+ * init: Quote subshell result properly
+ * cfgtool: Don't assume link ID is a single char
+ * knet: Always use link0 for loopback
+ * totem: Fix debug warnings printed by knet
+ * config: Allow use of ring0_addr
+ * config: Update message when local host isn't found
+ * cfg: Fix cfg_get_node_addrs so that DLM works
+ * totem: Return interface count correctly
+ * totem: Use nodeid ONLY in srp_addr
+ * [rpm] use rpm macros to identify build distro
+ * [rpm] fixup corosync.spec.in to build on opensuse
+ * totempg: Fix corrupted messages
+ * totempg: use iovec[i].iov_len instead of copy_len
+ * totempg: Fix fragmentation segfault
+ * [build] fix build with non-standard knet location
+ * [man] fix regression introduced by 7162e75dcf81b7e475536e3060bf5e9312cd43b8
+ * Man: Move overview mp to sections 3 and 7 from 8
+ * logging: Close before and open blackbox after fork
+ * logging: Make blackbox configurable
+ * corosync-notifyd: improve error handling
+ * spec: Modernize spec to comply with newest Fedora
+ * build: Remove support for upstart
+ * build: Replace -lknet with autoconf generated vars
+ * build: Remove rdma/ibverbs
+ * qdevice: Remove qdevices
+ * config: Don't fudge port numbers
+ * knet: Allow ping_timers to be auto-configured
+ * cts: Make code compatible with Python 3
+ * corosync-notifyd: make SNMP work again
+ * build: Add the headers necessary for RPM build
+ * config: if local node addr is wrong, fail with a sensible message
+ * totemknet: Drop truncated packets on receive
+ * totemudp: Make use of UDP_RECEIVE_FRAME_SIZE_MAX
+ * totemudpu: Export and rename UDPU_FRAME_SIZE_MAX
+ * totemconfig: Fix UDP autogeneration of mcast addr
+ * totemudpu: Scale receive buffer
+ * config: Allow selection of crypto_model
+ * libcpg: Fix issue with partial big packet assembly
+ * qdevice: mv free(str) after port validation
+ * corosync.aug: Add missing options
+ * config: Allow links to have different ip_versions
+ * Fix compile errors in qdevice and vqsim on FreeBSD
+ * cmapctl: mention the Clear stats option in usage message
+ * corosync-cfgtool: refactor cli parameters handling
+ * wd: fix snprintf warnings
+ * totemsrp: Revert totemsrp_get_ifaces() changes
+ * man: Add note about corosync not using name option
+ * corosync.conf: publicize nodelist.node.name
+ * man: fixes for corosync.conf man page
+ * cmapctl: add "-m" option into help message
+ * totemconfig: remove duplicate aes256 test
+ * fix output format for corosync-cfgtool with knet (#283)
+ * sync: Call sync_init of all services at once
+ * sync: Remove unneeded determine sync code
+ * stats: Add some missing knet stats
+ * man: Add note about qdevice parallel cmds start
+ * man: corosync-qdevice: some more stylistics
+ * systemd: corosync-qdevice can not run without corosync
+ * man: corosync-qdevice: fix formatting vs. punctuation
+ * configure: kill off INITWRAPPERSDIR
+ * corosync-qdevice: send startup notification to systemd
+ * corosync-qnetd: send startup notification to systemd
+ * Send corosync-notifyd startup notification to systemd
+ * Make systemd stop corosync-notifyd if corosync is stopped
+ * corosync.spec: Add system-devel build requirement
+ * Send corosync startup notification to systemd
+ * quorumtool: Use full buffer size in snprintf
+ * cpghum: Mark print/log functions with printf attr
+ * cpg_test_agent: Fix snprintf compiler warnings
+ * sam: Fix snprintf compiler warnings
+ * coroparse: Do not convert empty uid, gid to 0
+ * cmapctl: Add option to clear the stats
+ * stats: Don't display errors when reading knet stat
+ * make the output of "corosync-cfgtool -s" more readable (#269)
+ * cfg: nodeid should be unsigned int
+ * quorumtool: remove duplicated help message
+ * man: fix cpg_mcast_joined.3.in
+ * man: Add stats.clear keys to the cmap_keys man pg
+ * stats: Add cmap key to clear the various stats.
+ * Use RuntimeDirectory instead of tmpfiles.d
+ * totemconfig: generate mcast icmap items for UDP
+ * Use static case blocks to determine distro flavor
+ * configure: add --with-initconfigdir option
+ * totemconfig: add nodeid check for knet
+ * man: support SOURCE_DATE_EPOCH
+ * man:fix in corosync-qdevice.8
+ * man: must set nodeid for knet in nodelist
+ * logsys: Avoid redundant callsite section checking
+ * config: Fix memory leak
+ * knet: Add support for knet compression
+ * qdevice: Add support for heuristics
+ * Spec: fix arch-qualified dependencies
+ * cmap: Remove noop highest config version check
+ * cmap: don't shutdown highest config_version node
+ * totemudp: Remove memb_join discarding
+ * votequorum: make atb consistent on nodelist reload
+ * totem: Remove unnecessary NSS headers
+ * config: Allow dynamic link configuration
+ * totemudp: Retry if bind fails
+ * corosync.conf.5: watchdog support is conditional
+ * wd: default to not using a watchdog
+ * wd: remove extra capitalization typo
+ * corosync.conf.5: add warning about slow watchdogs
+ * totemknet: fix debug message typo
+ * corosync.conf.5: Fix watchdog documentation
+ * wd: fix typo
+ * Include fcntl.h for F_* and O_* defines
+ * stats: add knet 'handle' stats
+ * main: use syslog & printf directly for early log messages
+ * totempg: Allow space for incoming overflow
+ * cpghum: Add options to change flood start/mult/end sizes (#237)
+ * totemknet: Use knet's LOOPBACK transport (#236)
+ * CFG: Remove ring-reenable code
+ * main: Add support for libcgroup
+ * stats: Add map with on-demand statistics
+ * ipc: Check for the libraries sending invalid message IDs
+ * main: Add option to set priority
+ * totemknet: Prevent dead-loop in log_flush_messages
+ * corosync-keygen: Display number of needed bits
+ * totemknet: Flush knet log messages
+ * corosync-keygen: Make less-secure default
+ * corosync-keygen: Adapt to knet key sizes
+ * totemconfig: Make crypto work again
+ * knet: Compile with latest knet API
+ * totem: Propagate totem initialization failure
+ * totemknet: Use new knet_link_set_config() API
+ * coroapi: Use size_t for private_data_size
+ * votequorum: Report errors from votequorum_exec_send_reconfigure
+ * cpghum: remove space after delimiter
+ * cpghum: Add interim RTT to cpghum
+ * configure: Enable C99 language standard
+ * main: Display reason why cluster cannot be formed
+ * notifyd: Add the community name to an SNMP trap
+ * cpghum: Add machine-readable output
+ * test: Fold cpgbench into cpghum (#205)
+ * knet: Allow space for encapsulated messages
+ * Main: Call mlockall after fork
+ * Fix typos in README.recovery
+ * coroparse: Use readdir instead of readdir_r
+ * totemknet: Handle logpipe creation failure
+ * wd: Report error when close of wd fails
+ * Qnetd lms: Use UTILS_PRI_RING_ID printf format str
+ * cpghum: Fix printf of size_t variable
+ * totemknet: Got back to recvmsg() from recvmmsg()
+ * totemconfig: Prefer nodelist over bindnetaddr
+ * knet: Close libknet down cleanly at shutdown
+ * man: Document -a option to corosync-quorumtool
+ * cpghum test: Improve error codes
+ * quorumtool: Add option to show all node addresses
+ * cpghum: Stop cpghum from reporting fake CRC errors
+ * logconfig: Do not overwrite logger_subsys priority
+ * totem: Fix buffer sizes
+ * main: Don't ask libqb to handle segv, it doesn't work
+ * Logsys: Change logsys syslog_priority priority
+ * knet: improve logging messages by adding knet subsystem
+ * cpghum: Add abort_on_error option
+ * cpghum: Add min rtt and print stats every alarm
+ * cpghum: Add Round Trip Time (RTT) reporting
+ * knet: Change nodeids to knet_node_id_t for new knet compatibility
+ * knet: Fix MTU sizes & allow transport config in corosync.conf
+ * knet: PMTUd data_mtu already accounts for IP and knet header overheads
+ * knet: switch from write to sendto()
+ * knet: Change nodeids to 8 bit for new knet compatibility
+ * doc: document watchdog_device parameter
+ * knet: Fix member_remove to shut down existing links first
+ * Spec: make internal dependencies arch-qualified
+ * Spec: drop unneeded dependency
+ * knet: Reduce default pong count to 2 for faster startup
+ * totemknet: Make it compile with kronosnet git master
+ * Qdevice: fix spell errors in qdevice
+ * Remove redundant header file inclusion
+ * Remove deprecated doxygen flags
+ * upstart: Add softdog module loading example
+ * Totempg: remove duplicate memcpy in mcast_msg func
+ * man: Modify man-page according to command usage
+ * init: Add doc URIs to the systemd service files
+ * Fix typo: Destorying -> Destroying
+ * man: Fix typos in man page
+ * totempg: totempg_groups_join return valid error
+ * systemd: Delete unnecessary soft_margin
+ * knet: Support reload of link parameters
+ * list: Unify the list processing with qb_list func
+ * knet: Allow configuration of more params
+ * knet: Don't lose log messages when knet gets busy (#165)
+ * libvotequorum: Bump version
+ * list: Replace for_each by safe version where need
+ * list: Remove list.h
+ * list: Replace uses of list.h with qblist.h
+ * [build] Fix build on RHEL7.3 latest
+ * Change a type of NodeID.
+ * vqsim: Fix Makefile.am
+ * configure: Remove RDMA (again)
+ * vqsim: Add Quorum simulator program
+ * Build: Fail configure if knet is not installed
+ * totem: add totemknet.[ch]
+ * cfg: Prevents use of uninitialized buffer
+ * totem: Add Kronosnet transport.
+ * coropase: Set a poll_period value for wd monitor
+ * votequorum: simplify reconfigure message handling
+ * votequorum: Don't update expected_votes display if value is too high
+ * Fix various typos
+ * init: corosync and cman aren't system facilities
+ * conf: be explicit about the mcast src/dst ports
+
+ Added:
+ corosync-3.1.8.tar.gz
+ Removed:
+ corosync-2.4.6.tar.gz
+ bug-1001164_corosync.conf-example.patch
+ bug-1032634_fix-ifdown-udp.patch
+ bug-1083561_upgrade-from-1-x-y.patch
+ bug-882449_corosync-conf-example.patch
+ corosync-2.3.4-fix-bashisms.patch
+ corosync-init-lockfile-path-error.patch
+ corosync-start-stop-level.patch
+ Fix-compile-warnings-with-GCC-7.2.1.patch
+ upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch
+ baselibs.conf
+
+ Modified:
+ _service
+ _servicedata
+ corosync.changes: add changelogs
+ corosync.spec: updates to corosync3
+
+-------------------------------------------------------------------
+Mon Feb 26 10:52:30 UTC 2024 - Dominique Leuenberger
+
+- Use %autosetup macro. Allows to eliminate the usage of deprecated
+ PatchN.
+
+-------------------------------------------------------------------
+Thu Jan 25 09:04:02 UTC 2024 - Dominique Leuenberger
+
+- Provide user(coroqnetd) and group(coroqnetd) in the -qnetd
+ package: user and group are generated by the pre script.
+
-------------------------------------------------------------------
Mon Nov 21 19:56:53 UTC 2022 - Emil Penchev
diff --git a/corosync.spec b/corosync.spec
index 80e4e7f..36d082f 100644
--- a/corosync.spec
+++ b/corosync.spec
@@ -1,7 +1,7 @@
#
# spec file for package corosync
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -24,67 +24,56 @@
# Conditionals
# Invoke "rpmbuild --without " or "rpmbuild --with "
# to disable or enable specific features
-%bcond_without testagents
%bcond_with watchdog
%bcond_with monitoring
%bcond_with snmp
-%bcond_with rdma
+%bcond_with nozzle
%bcond_with dbus
-%bcond_with upstart
%bcond_with xmlconf
+%bcond_with vqsim
%bcond_without runautogen
%bcond_without systemd
-%bcond_without qdevices
-%bcond_without qnetd
+%bcond_with userflags
+
+%global gitver %{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}
+%global gittarver %{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
%if 0%{?sles_version} == 12
%ifnarch s390 s390x
%define buildib 1
%endif
%endif
+%if 0%{?suse_version}
+%define _libexecdir %{_libdir}
+%endif
Name: corosync
Summary: The Corosync Cluster Engine and Application Programming Interfaces
License: BSD-3-Clause
Group: Productivity/Clustering/HA
-Version: 2.4.6
-Release: 0
-URL: http://corosync.github.io/corosync/
-Source0: %{name}-%{version}.tar.gz
-Source2: baselibs.conf
-Patch1: upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch
-Patch2: Fix-compile-warnings-with-GCC-7.2.1.patch
-Patch3: bug-1083561_upgrade-from-1-x-y.patch
-Patch4: bug-882449_corosync-conf-example.patch
-Patch5: bug-1032634_fix-ifdown-udp.patch
-Patch6: bug-1001164_corosync.conf-example.patch
-Patch7: corosync-2.3.4-fix-bashisms.patch
-Patch8: corosync-init-lockfile-path-error.patch
-Patch9: corosync-start-stop-level.patch
+Version: 3.1.8
+Release: 3
+Url: http://corosync.github.io/corosync/
+Source0: https://build.clusterlabs.org/corosync/releases/%{name}-%{version}%{?gittarver}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-# openais is indeed gone and should be uninstalled. Yes, we do not
# provide openais on purpose, the package has been deleted.
-Obsoletes: openais < 1.2
-Conflicts: openais < 1.2
# Runtime bits
-Requires: libcfg6 = %{version}-%{release}
-Requires: libcmap4 = %{version}-%{release}
-Requires: libcorosync_common4 = %{version}-%{release}
-Requires: libcpg4 = %{version}-%{release}
-Requires: libquorum5 = %{version}-%{release}
-Requires: libsam4 = %{version}-%{release}
-Requires: libtotem_pg5 = %{version}-%{release}
-Requires: libvotequorum8 = %{version}-%{release}
-Conflicts: openais <= 0.89
-Conflicts: openais-devel <= 0.89
+# The automatic dependency overridden in favor of explicit version lock
+Requires: %{name}-libs = %{version}-%{release}
+
+# Support crypto reload
+Requires: libknet1 >= 1.28
+# NSS crypto plugin should be always installed
+Requires: libknet1-crypto-nss-plugin >= 1.28
# Build bits
+BuildRequires: gcc
BuildRequires: groff-full
BuildRequires: libqb-devel
-BuildRequires: mozilla-nss-devel
+BuildRequires: libknet-devel >= 1.28
BuildRequires: zlib-devel
%if %{with runautogen}
BuildRequires: autoconf
@@ -94,43 +83,42 @@ BuildRequires: libtool
%if %{with monitoring}
BuildRequires: libstatgrab-devel
%endif
-%if %{with rdma}
-BuildRequires: libibverbs-devel
-BuildRequires: librdmacm-devel
-%endif
%if %{with snmp}
BuildRequires: net-snmp-devel
%endif
%if %{with dbus}
BuildRequires: dbus-1-devel
%endif
+%if %{with nozzle}
+BuildRequires: libnozzle-devel
+%endif
%if %{with systemd}
BuildRequires: pkgconfig(systemd)
-%{systemd_ordering}
+BuildRequires: systemd-devel
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
%endif
%if %{with xmlconf}
Requires: libxslt
%endif
-%if %{with qdevices} || %{with qnetd}
-Requires: mozilla-nss-tools
-%endif
-%if %{with qnetd}
-BuildRequires: sed
+%if %{with vqsim}
+BuildRequires: readline-devel
%endif
+Obsoletes: libcfg6
+Obsoletes: libcmap4
+Obsoletes: libcorosync_common4
+Obsoletes: libcpg4
+Obsoletes: libquorum5
+Obsoletes: libsam4
+Obsoletes: libtotem_pg5
+Obsoletes: libvotequorum8
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%prep
%setup -q -n %{name}-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
+
rm -f .git*
echo %{version} > .tarball-version
echo %{version} > .version
@@ -140,50 +128,36 @@ echo %{version} > .version
./autogen.sh
%endif
-%if %{with rdma}
-export ibverbs_CFLAGS=-I/usr/include/infiniband \
-export ibverbs_LIBS=-libverbs \
-export rdmacm_CFLAGS=-I/usr/include/rdma \
-export rdmacm_LIBS=-lrdmacm \
-%endif
%{configure} \
-%if %{with testagents}
- --enable-testagents \
-%endif
%if %{with watchdog}
- --enable-watchdog \
+ --enable-watchdog \
%endif
%if %{with monitoring}
- --enable-monitoring \
+ --enable-monitoring \
%endif
%if %{with snmp}
- --enable-snmp \
+ --enable-snmp \
%endif
%if %{with dbus}
- --enable-dbus \
-%endif
-%if %{with rdma}
- --enable-rdma \
+ --enable-dbus \
%endif
%if %{with systemd}
- --enable-systemd \
-%endif
-%if %{with upstart}
- --enable-upstart \
+ --enable-systemd \
%endif
%if %{with xmlconf}
- --enable-xmlconf \
+ --enable-xmlconf \
%endif
-%if %{with qdevices}
- --enable-qdevices \
+%if %{with nozzle}
+ --enable-nozzle \
%endif
-%if %{with qnetd}
- --enable-qnetd \
+%if %{with vqsim}
+ --enable-vqsim \
%endif
- --with-initddir=%{_initrddir} \
- --with-systemddir=%{_unitdir} \
- --with-upstartdir=%{_sysconfdir}/init \
- --with-tmpfilesdir=%{_tmpfilesdir}
+%if %{with userflags}
+ --enable-user-flags \
+%endif
+ --with-initddir=%{_initrddir} \
+ --with-systemddir=%{_unitdir}
make %{_smp_mflags}
@@ -196,8 +170,6 @@ install -m 644 %{_builddir}/%{name}-%{version}/conf/corosync-signals.conf %{buil
%endif
%if %{with systemd}
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rccorosync
-ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rccorosync-qnetd
-ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rccorosync-qdevice
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rccorosync-notifyd
%endif
@@ -207,40 +179,21 @@ rm -f %{buildroot}%{_libdir}/*.a
rm -f %{buildroot}%{_libdir}/*.la
# drop docs and html docs for now
rm -rf %{buildroot}%{_docdir}/*
-#remove init scripts for corosync, corosync-qdevice, corosync-qnetd
-rm -rf init/corosync init/corosync-qnetd init/corosync-qdevice
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
mkdir -p %{buildroot}/usr/share/doc/packages/corosync/
mkdir -p %{buildroot}%{_fillupdir}/
mkdir -p %{buildroot}%{_sysconfdir}/init.d/
+# /etc/sysconfig/corosync-notifyd
+install -m 644 tools/corosync-notifyd.sysconfig.example \
+ %{buildroot}%{_fillupdir}/sysconfig.corosync-notifyd
install -m 0644 conf/corosync.conf.example* %{buildroot}/usr/share/doc/packages/corosync/
mkdir -p %{buildroot}/usr/lib/corosync
-install -m 0755 init/upgrade.sh %{buildroot}/usr/lib/corosync
rm -rf %{buildroot}/etc/corosync/corosync.conf.example*
rm -rf %{buildroot}/etc/logrotate.d/
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
install -m 644 init/corosync.sysconfig.example \
%{buildroot}%{_fillupdir}/sysconfig.corosync
-install -m 0644 tools/corosync-notifyd.sysconfig.example \
- %{buildroot}%{_fillupdir}/sysconfig.corosync-notifyd
rm -rf %{buildroot}%{localstatedir}/run/
-%if %{with qdevices}
-install -m 644 init/corosync-qdevice.sysconfig.example \
- %{buildroot}%{_fillupdir}/sysconfig.corosync-qdevice
-install -m 770 -d %{buildroot}/run/corosync-qdevice
-%endif
-
-%if %{with qnetd}
-install -m 644 init/corosync-qnetd.sysconfig.example \
- %{buildroot}%{_fillupdir}/sysconfig.corosync-qnetd
-install -m 770 -d %{buildroot}/run/corosync-qnetd
-%if %{with systemd}
-sed -i -e 's/^#User=/User=/' \
- %{buildroot}%{_unitdir}/corosync-qnetd.service
-%else
-sed -i -e 's/^COROSYNC_QNETD_RUNAS=""$/COROSYNC_QNETD_RUNAS="coroqnetd"/' \
- %{buildroot}%{_sysconfdir}/sysconfig/corosync-qnetd
-%endif
-%endif
%description
This package contains the Corosync Cluster Engine Executive, several default
@@ -250,38 +203,24 @@ APIs and libraries, default configuration files, and an init script.
%service_add_pre corosync.service corosync-notifyd.service
%post
-/usr/lib/corosync/upgrade.sh
-%{fillup_only -n corosync}
-%{fillup_only -n corosync-notifyd}
-# Upgrade
-if [ $1 -eq 2 ]; then
- # restore configured /etc/sysconfig/corosync(bsc#1155792)
- cp %{_sysconfdir}/sysconfig/corosync %{_fillupdir}/tmp.corosync_sysconfig
-fi
-
+%{fillup_and_insserv -n corosync}
+%{fillup_and_insserv -n corosync-notifyd}
%service_add_post corosync.service corosync-notifyd.service
rm -rf %{_sysconfdir}/corosync/corosync.conf.example %{_sysconfdir}/corosync/corosync.conf.example.unicast
ln -s /usr/share/doc/packages/corosync/corosync.conf.example %{_sysconfdir}/corosync/
-ln -s /usr/share/doc/packages/corosync/corosync.conf.example.udpu %{_sysconfdir}/corosync/corosync.conf.example.unicast
%preun
%service_del_preun corosync.service corosync-notifyd.service
%postun
-if [ -f %{_sysconfdir}/sysconfig/corosync ]; then
- rm %{_sysconfdir}/sysconfig/corosync
-fi
-
-%posttrans
-if [ ! -f %{_sysconfdir}/sysconfig/corosync ]; then
- mv %{_fillupdir}/tmp.corosync_sysconfig %{_sysconfdir}/sysconfig/corosync
+if [ -f /etc/sysconfig/corosync ]; then
+ rm /etc/sysconfig/corosync
fi
%files
%defattr(-,root,root,-)
-%doc SECURITY
-%license LICENSE
+%doc LICENSE
%{_sbindir}/corosync
%{_sbindir}/corosync-keygen
%{_sbindir}/corosync-cmapctl
@@ -296,8 +235,8 @@ fi
%{_bindir}/corosync-blackbox
%if %{with xmlconf}
%{_bindir}/corosync-xmlproc
-%config(noreplace) %{_sysconfdir}/corosync/corosync.xml.example
%dir %{_datadir}/corosync
+%config(noreplace) %{_sysconfdir}/corosync/corosync.xml.example
%{_datadir}/corosync/xml2conf.xsl
%{_mandir}/man8/corosync-xmlproc.8*
%{_mandir}/man5/corosync.xml.5*
@@ -306,9 +245,7 @@ fi
%dir %{_sysconfdir}/corosync/uidgid.d
%dir %{_datadir}/doc/corosync/
%dir /usr/lib/corosync/
-/usr/lib/corosync/upgrade.sh
%config(noreplace) /usr/share/doc/packages/corosync/corosync.conf.example
-%config(noreplace) /usr/share/doc/packages/corosync/corosync.conf.example.udpu
%config(noreplace) %{_fillupdir}/sysconfig.corosync-notifyd
%config(noreplace) %{_fillupdir}/sysconfig.corosync
@@ -321,17 +258,14 @@ fi
%if %{with systemd}
%{_unitdir}/corosync.service
%{_unitdir}/corosync-notifyd.service
+%else
%dir %{_datadir}/corosync
%{_datadir}/corosync/corosync
%{_datadir}/corosync/corosync-notifyd
%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}/man7/corosync_overview.7*
%{_mandir}/man8/corosync.8*
%{_mandir}/man8/corosync-blackbox.8*
%{_mandir}/man8/corosync-cmapctl.8*
@@ -342,182 +276,42 @@ fi
%{_mandir}/man8/corosync-quorumtool.8*
%{_mandir}/man5/corosync.conf.5*
%{_mandir}/man5/votequorum.5*
-%{_mandir}/man8/cmap_keys.8*
+%{_mandir}/man7/cmap_keys.7*
%{_datadir}/doc/corosync/*
-# optional testagent rpm
+
+#library
#
-%if %{with testagents}
+%package libs
+Summary: The corosync Cluster Engine Libraries
-%package -n corosync-testagents
-Summary: The Corosync Cluster Engine Test Agents
-Group: Development/Tools/Other
-Requires: %{name} = %{version}
+%description libs
+This package contains corosync libraries.
-%description -n corosync-testagents
-This package contains corosync test agents.
-
-%files -n corosync-testagents
-%defattr(755,root,root,-)
-%dir %{_datadir}/corosync/tests
-
-%{_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
-
-%package -n libcfg6
-Summary: Corosync configuration database library
-Group: System/Libraries
-
-%description -n libcfg6
-This package contains the Corosync configuration database library.
-
-%package -n libcmap4
-Summary: Corosync configuration map library
-Group: System/Libraries
-
-%description -n libcmap4
-The CMAP library is used to interact with the configuration database
-used by Corosync. The library provides a mechanism to
-create/chage/remove keys, iterate over them and track changes to
-keys.
-
-%package -n libcorosync_common4
-Summary: The Corosync Cluster Engine library
-# openais is indeed gone and should be uninstalled. Yes, we do not
-# provide libopenais on purpose, the package has been deleted.
-Group: System/Libraries
-Obsoletes: libopenais3 < 1.2
-Conflicts: libopenais3 < 1.2
-Obsoletes: libcorosync4 < %{version}-%{release}
-Provides: libcorosync4 = %{version}-%{release}
-
-%description -n libcorosync_common4
-This package contains the central Corosync library.
-
-%package -n libcpg4
-Summary: Corosync group message API
-Group: System/Libraries
-
-%description -n libcpg4
-A group message API called CPG, part of Corosync. This library is
-used to create distributed applications that operate properly during
-cluster partitions, merges, and faults.
-
-%package -n libquorum5
-Summary: Corosync quorum library
-Group: System/Libraries
-
-%description -n libquorum5
-The quorum library is the external interface to the quorum service.
-This service is loaded into all nodes in a Corosync cluster and track
-the quorum status of a node.
-
-%package -n libsam4
-Summary: Corosync Simple Availability Manager API
-Group: System/Libraries
-
-%description -n libsam4
-The SAM library provide a tool to check the health of an application.
-The main purpose of SAM is to restart a local process when it fails
-to respond to a healthcheck request in a configured time interval.
-
-%package -n libtotem_pg5
-Summary: Corosync Totem protocol
-Group: System/Libraries
-
-%description -n libtotem_pg5
-An implementation of the Totem Single Ring Ordering and Membership
-protocol providing the Extended Virtual Synchrony model for messaging
-and membership.
-
-%package -n libvotequorum8
-Summary: Corosync vote quorum library
-Group: System/Libraries
-
-%description -n libvotequorum8
-The votequorum library is the external interface to the vote-based
-quorum service. This service is optionally loaded into all nodes in a
-Corosync cluster to avoid split-brain situations. It does this by
-having a number of votes assigned to each system in the cluster and
-ensuring that only when a majority of the votes are present, cluster
-operations are allowed to proceed.
-
-%files -n libcfg6
-%defattr(-,root,root)
+%files libs
+%doc LICENSE
%{_libdir}/libcfg.so.*
-
-%files -n libcmap4
-%defattr(-,root,root)
-%{_libdir}/libcmap.so.*
-
-%files -n libcpg4
-%defattr(-,root,root)
%{_libdir}/libcpg.so.*
-
-%files -n libcorosync_common4
-%defattr(-,root,root)
+%{_libdir}/libcmap.so.*
+%{_libdir}/libquorum.so.*
+%{_libdir}/libvotequorum.so.*
+%{_libdir}/libsam.so.*
%{_libdir}/libcorosync_common.so.*
-%files -n libquorum5
-%defattr(-,root,root)
-%{_libdir}/libquorum.so.*
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
-%files -n libsam4
-%defattr(-,root,root)
-%{_libdir}/libsam.so.*
-
-%files -n libtotem_pg5
-%defattr(-,root,root)
-%{_libdir}/libtotem_pg.so.*
-
-%files -n libvotequorum8
-%defattr(-,root,root)
-%{_libdir}/libvotequorum.so.*
-
-%post -n libcfg6 -p /sbin/ldconfig
-%postun -n libcfg6 -p /sbin/ldconfig
-%post -n libcmap4 -p /sbin/ldconfig
-%postun -n libcmap4 -p /sbin/ldconfig
-%post -n libcorosync_common4 -p /sbin/ldconfig
-%postun -n libcorosync_common4 -p /sbin/ldconfig
-%post -n libcpg4 -p /sbin/ldconfig
-%postun -n libcpg4 -p /sbin/ldconfig
-%post -n libquorum5 -p /sbin/ldconfig
-%postun -n libquorum5 -p /sbin/ldconfig
-%post -n libsam4 -p /sbin/ldconfig
-%postun -n libsam4 -p /sbin/ldconfig
-%post -n libtotem_pg5 -p /sbin/ldconfig
-%postun -n libtotem_pg5 -p /sbin/ldconfig
-%post -n libvotequorum8 -p /sbin/ldconfig
-%postun -n libvotequorum8 -p /sbin/ldconfig
-
-%package -n libcorosync-devel
+%package devel
Summary: The Corosync Cluster Engine Development Kit
Group: Development/Libraries/C and C++
-Requires: libcfg6 = %{version}-%{release}
-Requires: libcmap4 = %{version}-%{release}
-Requires: libcorosync_common4 = %{version}-%{release}
-Requires: libcpg4 = %{version}-%{release}
-Requires: libqb-devel
-Requires: libquorum5 = %{version}-%{release}
-Requires: libsam4 = %{version}-%{release}
-Requires: libtotem_pg5 = %{version}-%{release}
-Requires: libvotequorum8 = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig
-Provides: corosync-devel = %{version}
-Obsoletes: corosync-devel < 0.92-7
+Provides: %{name}-devel = %{version}
-%description -n libcorosync-devel
+%description devel
This package contains include files and man pages used to develop using
The Corosync Cluster Engine APIs.
-%files -n libcorosync-devel
+%files devel
%defattr(-,root,root,-)
%doc LICENSE
%dir %{_includedir}/corosync/
@@ -530,14 +324,9 @@ The Corosync Cluster Engine APIs.
%{_includedir}/corosync/sam.h
%{_includedir}/corosync/quorum.h
%{_includedir}/corosync/votequorum.h
-%dir %{_includedir}/corosync/totem/
-%{_includedir}/corosync/totem/totem.h
-%{_includedir}/corosync/totem/totemip.h
-%{_includedir}/corosync/totem/totempg.h
%{_libdir}/libcfg.so
%{_libdir}/libcpg.so
%{_libdir}/libcmap.so
-%{_libdir}/libtotem_pg.so
%{_libdir}/libquorum.so
%{_libdir}/libvotequorum.so
%{_libdir}/libsam.so
@@ -547,159 +336,25 @@ The Corosync Cluster Engine APIs.
%{_mandir}/man3/quorum_*3*
%{_mandir}/man3/votequorum_*3*
%{_mandir}/man3/sam_*3*
-%{_mandir}/man8/cpg_overview.8*
-%{_mandir}/man8/votequorum_overview.8*
-%{_mandir}/man8/sam_overview.8*
%{_mandir}/man3/cmap_*3*
-%{_mandir}/man8/cmap_overview.8*
-%{_mandir}/man8/quorum_overview.8*
-%post -n libcorosync-devel -p /sbin/ldconfig
-%postun -n libcorosync-devel -p /sbin/ldconfig
-%if %{with qdevices}
+%if %{with vqsim}
+%package vqsim
+Summary: The Corosync Cluster Engine - Votequorum Simulator
+Requires: %{name}-libs = %{version}-%{release}
+Requires: pkgconfig
-%package -n corosync-qdevice
-Summary: The Corosync Cluster Engine Qdevice
-Group: System/Base
-Requires: corosync
-Requires: mozilla-nss-tools
+%description vqsim
+A command-line simulator for the corosync votequorum subsystem.
+It uses the same code as the corosync quorum system but forks
+them into subprocesses to simulate nodes.
+Nodes can be added and removed as well as partitioned (to simulate
+network splits)
-%if %{with systemd}
-%{systemd_ordering}
-%endif
-
-%description -n corosync-qdevice
-This package contains the Corosync Cluster Engine Qdevice, script for creating
-NSS certificates and an init script.
-
-%pre -n corosync-qdevice
-%service_add_pre corosync-qdevice.service
-
-%post -n corosync-qdevice
-%{fillup_only -n corosync-qdevice}
-# Upgrade
-if [ $1 -eq 2 ]; then
- cp %{_sysconfdir}/sysconfig/corosync-qdevice %{_fillupdir}/tmp.corosync-qdevice_sysconfig
-fi
-
-%if %{sles_version} > 0
-ln -s /run/corosync-qdevice /var/run/
-%endif
-%service_add_post corosync-qdevice.service
-
-%preun -n corosync-qdevice
-%service_del_preun corosync-qdevice.service
-
-%if %{sles_version}
-unlink /var/run/corosync-qdevice
-%endif
-
-%service_del_postun corosync-qdevice.service
-
-%postun -n corosync-qdevice
-if [ -f %{_sysconfdir}/sysconfig/corosync-qdevice ]; then
- rm %{_sysconfdir}/sysconfig/corosync-qdevice
-fi
-
-%posttrans -n corosync-qdevice
-if [ ! -f %{_sysconfdir}/sysconfig/corosync-qdevice ]; then
- mv %{_fillupdir}/tmp.corosync-qdevice_sysconfig %{_sysconfdir}/sysconfig/corosync-qdevice
-fi
-
-%files -n corosync-qdevice
-%defattr(-,root,root,-)
-%dir %{_sysconfdir}/corosync/qdevice
-%dir %config(noreplace) %{_sysconfdir}/corosync/qdevice/net
-#change corosync-qdevice to /run as /var/run is symlink nowdays
-%ghost /run/corosync-qdevice
-%{_sbindir}/corosync-qdevice
-%{_sbindir}/corosync-qdevice-net-certutil
-%{_sbindir}/corosync-qdevice-tool
-%config(noreplace) %{_fillupdir}/sysconfig.corosync-qdevice
-%if %{with systemd}
-%{_unitdir}/corosync-qdevice.service
-%{_sbindir}/rccorosync-qdevice
-%dir %{_datadir}/corosync
-%{_datadir}/corosync/corosync-qdevice
-%endif
-%{_mandir}/man8/corosync-qdevice-tool.8*
-%{_mandir}/man8/corosync-qdevice-net-certutil.8*
-%{_mandir}/man8/corosync-qdevice.8*
-%endif
-
-%if %{with qnetd}
-
-%package -n corosync-qnetd
-Summary: The Corosync Cluster Engine Qdevice Network Daemon
-Group: System/Base
-Requires: mozilla-nss-tools
-Requires(pre): /usr/sbin/useradd
-
-%if %{with systemd}
-%{systemd_ordering}
-%endif
-
-%description -n corosync-qnetd
-This package contains the Corosync Cluster Engine Qdevice Network Daemon, script for creating
-NSS certificates and an init script.
-
-%pre -n corosync-qnetd
-getent group coroqnetd >/dev/null || groupadd -r coroqnetd -g 701
-getent passwd coroqnetd >/dev/null || useradd -r -g coroqnetd -u 701 -s /sbin/nologin -c "User for corosync-qnetd" coroqnetd
-
-%service_add_pre corosync-qnetd.service
-
-exit 0
-
-%post -n corosync-qnetd
-%if %{sles_version} > 0
-ln -s /run/corosync-qnetd /var/run/
-%endif
-%{fillup_only -n corosync-qnetd}
-# Upgrade
-if [ $1 -eq 2 ]; then
- cp %{_sysconfdir}/sysconfig/corosync-qnetd %{_fillupdir}/tmp.corosync-qnetd_sysconfig
-fi
-
-%service_add_post corosync-qnetd.service
-
-%preun -n corosync-qnetd
-%service_del_preun corosync-qnetd.service
-
-%if %{sles_version} > 0
-unlink /var/run/corosync-qnetd
-%endif
-
-%service_del_postun corosync-qnetd.service
-
-%postun -n corosync-qnetd
-if [ -f %{_sysconfdir}/sysconfig/corosync-qnetd ]; then
- rm %{_sysconfdir}/sysconfig/corosync-qnetd
-fi
-
-%posttrans -n corosync-qnetd
-if [ ! -f %{_sysconfdir}/sysconfig/corosync-qnetd ]; then
- mv %{_fillupdir}/tmp.corosync-qnetd_sysconfig %{_sysconfdir}/sysconfig/corosync-qnetd
-fi
-
-%files -n corosync-qnetd
-%defattr(-,root,root,-)
-%dir %config(noreplace) %attr(750, coroqnetd, coroqnetd) %{_sysconfdir}/corosync/qnetd
-#change corosync-qnetd to /run as /var/run is just symlink nowadays
-%ghost %attr (750, coroqnetd, coroqnetd) /run/corosync-qnetd
-%{_bindir}/corosync-qnetd
-%{_bindir}/corosync-qnetd-certutil
-%{_bindir}/corosync-qnetd-tool
-%config(noreplace) %{_fillupdir}/sysconfig.corosync-qnetd
-%if %{with systemd}
-%{_unitdir}/corosync-qnetd.service
-%{_sbindir}/rccorosync-qnetd
-%dir %{_datadir}/corosync
-%{_datadir}/corosync/corosync-qnetd
-%endif
-%{_mandir}/man8/corosync-qnetd-tool.8*
-%{_mandir}/man8/corosync-qnetd-certutil.8*
-%{_mandir}/man8/corosync-qnetd.8*
+%files vqsim
+%doc LICENSE
+%{_bindir}/corosync-vqsim
+%{_mandir}/man8/corosync-vqsim.8*
%endif
%changelog
diff --git a/upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch b/upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch
deleted file mode 100644
index be83222..0000000
--- a/upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Naur corosync-2.4.5/exec/ipc_glue.c corosync-2.4.5-new/exec/ipc_glue.c
---- corosync-2.4.5/exec/ipc_glue.c 2019-07-30 20:26:27.000000000 +0800
-+++ corosync-2.4.5-new/exec/ipc_glue.c 2019-08-13 13:54:38.187443967 +0800
-@@ -272,7 +272,7 @@
- struct cs_ipcs_conn_context *context;
- char proc_name[32];
- struct qb_ipcs_connection_stats stats;
-- int32_t size = sizeof(struct cs_ipcs_conn_context);
-+ size_t size = sizeof(struct cs_ipcs_conn_context);
- char key_name[ICMAP_KEYNAME_MAXLEN];
- int set_client_pid = 0;
- int set_proc_name = 0;
-diff -Naur corosync-2.4.5/include/corosync/coroapi.h corosync-2.4.5-new/include/corosync/coroapi.h
---- corosync-2.4.5/include/corosync/coroapi.h 2019-07-30 20:26:27.000000000 +0800
-+++ corosync-2.4.5-new/include/corosync/coroapi.h 2019-08-13 13:55:26.031711198 +0800
-@@ -494,7 +494,7 @@
- unsigned short priority; /* Lower priority are loaded first, unloaded last.
- * 0 is a special case which always loaded _and_ unloaded last
- */
-- unsigned int private_data_size;
-+ size_t private_data_size;
- enum cs_lib_flow_control flow_control;
- enum cs_lib_allow_inquorate allow_inquorate;
- char *(*exec_init_fn) (struct corosync_api_v1 *);