Accepting request 1180044 from network:ha-clustering:Unstable

corosync3 updates

OBS-URL: https://build.opensuse.org/request/show/1180044
OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/corosync?expand=0&rev=193
This commit is contained in:
Emil Penchev 2024-06-13 07:44:29 +00:00 committed by Git OBS Bridge
parent cb472861af
commit 9f5085c542
16 changed files with 642 additions and 1111 deletions

View File

@ -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

View File

@ -1,21 +1,19 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="url">git://github.com/corosync/corosync.git</param>
<param name="url">https://github.com/corosync/corosync.git</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="filename">corosync</param>
<param name="versionformat">2.4.5+git@TAG_OFFSET@.%h</param>
<param name="revision">needle</param>
<param name="versionformat">3.1.8+%cd.%h</param>
<param name="revision">40e08b21</param>
<param name="changesgenerate">enable</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">corosync*.tar</param>
<param name="compression">bz2</param>
<param name="compression">gz</param>
</service>
<!--
<service name="set_version" mode="disabled">
<param name="basename">corosync</param>
</service>
-->
</services>

View File

@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/corosync/corosync.git</param>
<param name="changesrevision">64010f573801b73222e80821a19140c59b003f5c</param></service></servicedata>
<param name="url">https://github.com/corosync/corosync.git</param>
<param name="changesrevision">40e08b219de94f3850f8f39291d89a5713e32f06</param></service></servicedata>

View File

@ -1,10 +0,0 @@
libcfg6
libcmap4
libcorosync_common4
obsoletes "libcorosync4-<targettype> < <version>"
provides "libcorosync4-<targettype> = <version>"
libcpg4
libquorum5
libsam4
libtotem_pg5
libvotequorum8

View File

@ -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

View File

@ -1,363 +0,0 @@
From ec2dfbec877fee166b31493e2dba41a850380608 Mon Sep 17 00:00:00 2001
From: Bin Liu <bliu@suse.com>
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

View File

@ -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

View File

@ -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
}

View File

@ -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

BIN
corosync-2.4.6.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
corosync-3.1.8.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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

View File

@ -1,59 +0,0 @@
From b827e7f33fee652a79713d302aa9be56b456fa7d Mon Sep 17 00:00:00 2001
From: Bin Liu <bliu@suse.com>
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

View File

@ -1,3 +1,531 @@
-------------------------------------------------------------------
Wed May 15 12:18:23 UTC 2024 - Emil Penchev <emil.penchev@suse.com>
- 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
-------------------------------------------------------------------
Mon Feb 26 10:52:30 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -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 <feature>" or "rpmbuild --with <feature>"
# 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: 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: libknet1-devel >= 1.28
BuildRequires: zlib-devel
%if %{with runautogen}
BuildRequires: autoconf
@ -94,34 +83,41 @@ 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: libnozzle1-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
%autosetup -p1 -n %{name}-%{version}
%setup -q -n %{name}-%{version}
rm -f .git*
echo %{version} > .tarball-version
@ -132,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}
@ -188,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
@ -199,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
@ -242,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
@ -288,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*
@ -298,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
@ -313,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*
@ -334,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/
@ -522,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
@ -539,161 +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
Provides: group(coroqnetd)
Provides: user(coroqnetd)
%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

View File

@ -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 *);