From 9f5085c542f8c9afeb3871cb0d7d5c35f8978456cc9f2d91817d803550fef4b0 Mon Sep 17 00:00:00 2001 From: Emil Penchev Date: Thu, 13 Jun 2024 07:44:29 +0000 Subject: [PATCH] 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 --- Fix-compile-warnings-with-GCC-7.2.1.patch | 37 -- _service | 14 +- _servicedata | 4 +- baselibs.conf | 10 - bug-1001164_corosync.conf-example.patch | 23 - bug-1032634_fix-ifdown-udp.patch | 363 ------------ bug-1083561_upgrade-from-1-x-y.patch | 21 - bug-882449_corosync-conf-example.patch | 67 --- corosync-2.3.4-fix-bashisms.patch | 33 -- corosync-2.4.6.tar.gz | 3 - corosync-3.1.8.tar.gz | 3 + corosync-init-lockfile-path-error.patch | 19 - corosync-start-stop-level.patch | 59 -- corosync.changes | 528 +++++++++++++++++ corosync.spec | 545 ++++-------------- ...api-Use-size_t-for-private_data_size.patch | 24 - 16 files changed, 642 insertions(+), 1111 deletions(-) delete mode 100644 Fix-compile-warnings-with-GCC-7.2.1.patch delete mode 100644 baselibs.conf delete mode 100644 bug-1001164_corosync.conf-example.patch delete mode 100644 bug-1032634_fix-ifdown-udp.patch delete mode 100644 bug-1083561_upgrade-from-1-x-y.patch delete mode 100644 bug-882449_corosync-conf-example.patch delete mode 100644 corosync-2.3.4-fix-bashisms.patch delete mode 100644 corosync-2.4.6.tar.gz create mode 100644 corosync-3.1.8.tar.gz delete mode 100644 corosync-init-lockfile-path-error.patch delete mode 100644 corosync-start-stop-level.patch delete mode 100644 upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch 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 31caf74..dc67da0 100644 --- a/corosync.changes +++ b/corosync.changes @@ -1,3 +1,531 @@ +------------------------------------------------------------------- +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 + ------------------------------------------------------------------- Mon Feb 26 10:52:30 UTC 2024 - Dominique Leuenberger diff --git a/corosync.spec b/corosync.spec index 666697a..f759e4b 100644 --- a/corosync.spec +++ b/corosync.spec @@ -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: 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 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 *);