Accepting request 42251 from network:ha-clustering:Factory
Copy from network:ha-clustering:Factory/corosync based on submit request 42251 from user tserong OBS-URL: https://build.opensuse.org/request/show/42251 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/corosync?expand=0&rev=1
This commit is contained in:
commit
aa4184eba9
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
3
corosync-1.2.1.tar.gz
Normal file
3
corosync-1.2.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d919d9817c4cde9e3d38e6f79731d9e1cd53485c6160bd253d888fa58a87a43d
|
||||
size 668446
|
12
corosync-confexample-timestamp.patch
Normal file
12
corosync-confexample-timestamp.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -ur corosync-1.2.0.orig//conf/corosync.conf.example corosync-1.2.0/conf/corosync.conf.example
|
||||
--- corosync-1.2.0.orig//conf/corosync.conf.example 2009-06-26 02:25:52.000000000 +0200
|
||||
+++ corosync-1.2.0/conf/corosync.conf.example 2010-02-08 15:51:10.783160000 +0100
|
||||
@@ -20,7 +20,7 @@
|
||||
to_syslog: yes
|
||||
logfile: /tmp/corosync.log
|
||||
debug: off
|
||||
- timestamp: on
|
||||
+ timestamp: off
|
||||
logger_subsys {
|
||||
subsys: AMF
|
||||
debug: off
|
55
corosync-cs2729.patch
Normal file
55
corosync-cs2729.patch
Normal file
@ -0,0 +1,55 @@
|
||||
Index: trunk/services/Makefile.am
|
||||
===================================================================
|
||||
--- trunk/services/Makefile.am (revision 2728)
|
||||
+++ trunk/services/Makefile.am (revision 2729)
|
||||
@@ -68,10 +68,10 @@
|
||||
|
||||
else
|
||||
quorum_%.lcrso: %.o
|
||||
- $(CC) $(CFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
+ $(CC) $(CFLAGS) $(COVERAGE_LCRSO_EXTRA_LDFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
|
||||
service_%.lcrso: %.o
|
||||
- $(CC) $(CFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
+ $(CC) $(CFLAGS) $(COVERAGE_LCRSO_EXTRA_LDFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
endif
|
||||
|
||||
endif
|
||||
Index: trunk/exec/Makefile.am
|
||||
===================================================================
|
||||
--- trunk/exec/Makefile.am (revision 2728)
|
||||
+++ trunk/exec/Makefile.am (revision 2729)
|
||||
@@ -122,7 +122,7 @@
|
||||
else
|
||||
|
||||
%.lcrso: %.o
|
||||
- $(CC) $(CFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
+ $(CC) $(CFLAGS) $(COVERAGE_LCRSO_EXTRA_LDFLAGS) -shared -Wl,-soname=$@ $^ -o $@
|
||||
|
||||
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
|
||||
$(CC) -shared -o $@ \
|
||||
Index: trunk/configure.ac
|
||||
===================================================================
|
||||
--- trunk/configure.ac (revision 2728)
|
||||
+++ trunk/configure.ac (revision 2729)
|
||||
@@ -390,10 +390,12 @@
|
||||
OPT_CFLAGS="-O0"
|
||||
COVERAGE_CFLAGS="-ftest-coverage -fprofile-arcs"
|
||||
COVERAGE_LDFLAGS="-ftest-coverage -fprofile-arcs"
|
||||
+ COVERAGE_LCRSO_EXTRA_LDFLAGS="-rdynamic"
|
||||
PACKAGE_FEATURES="$PACKAGE_FEATURES coverage"
|
||||
else
|
||||
COVERAGE_CFLAGS=""
|
||||
COVERAGE_LDFLAGS=""
|
||||
+ COVERAGE_LCRSO_EXTRA_LDFLAGS=""
|
||||
fi
|
||||
|
||||
|
||||
@@ -437,6 +439,6 @@
|
||||
AC_SUBST([SONAME])
|
||||
AC_SUBST([CPG_SONAME])
|
||||
-
|
||||
+AC_SUBST([COVERAGE_LCRSO_EXTRA_LDFLAGS])
|
||||
AC_SUBST([OS_DYFLAGS])
|
||||
|
||||
AC_SUBST([OS_LDL])
|
13
corosync-cs2731.patch
Normal file
13
corosync-cs2731.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: trunk/exec/service.c
|
||||
===================================================================
|
||||
--- trunk/exec/service.c (revision 2730)
|
||||
+++ trunk/exec/service.c (revision 2731)
|
||||
@@ -436,7 +436,7 @@
|
||||
(void *)&service_id, NULL);
|
||||
|
||||
if(service_id != NULL
|
||||
- && *service_id > 0
|
||||
+ && *service_id >= 0
|
||||
&& *service_id < SERVICE_HANDLER_MAXIMUM_COUNT
|
||||
&& ais_service[*service_id] != NULL) {
|
||||
|
45
corosync-cs2739.patch
Normal file
45
corosync-cs2739.patch
Normal file
@ -0,0 +1,45 @@
|
||||
Index: trunk/exec/util.h
|
||||
===================================================================
|
||||
--- trunk/exec/util.h (revision 2738)
|
||||
+++ trunk/exec/util.h (revision 2739)
|
||||
@@ -44,23 +44,23 @@
|
||||
extern cs_time_t clust_time_now(void);
|
||||
|
||||
enum e_ais_done {
|
||||
- AIS_DONE_EXIT = -1,
|
||||
- AIS_DONE_UID_DETERMINE = -2,
|
||||
- AIS_DONE_GID_DETERMINE = -3,
|
||||
- AIS_DONE_MEMPOOL_INIT = -4,
|
||||
- AIS_DONE_FORK = -5,
|
||||
- AIS_DONE_LIBAIS_SOCKET = -6,
|
||||
- AIS_DONE_LIBAIS_BIND = -7,
|
||||
- AIS_DONE_READKEY = -8,
|
||||
- AIS_DONE_MAINCONFIGREAD = -9,
|
||||
- AIS_DONE_LOGSETUP = -10,
|
||||
- AIS_DONE_AMFCONFIGREAD = -11,
|
||||
- AIS_DONE_DYNAMICLOAD = -12,
|
||||
- AIS_DONE_OBJDB = -13,
|
||||
- AIS_DONE_INIT_SERVICES = -14,
|
||||
- AIS_DONE_OUT_OF_MEMORY = -15,
|
||||
- AIS_DONE_FATAL_ERR = -16,
|
||||
- AIS_DONE_DIR_NOT_PRESENT = -17
|
||||
+ AIS_DONE_EXIT = 0,
|
||||
+ AIS_DONE_UID_DETERMINE = 1,
|
||||
+ AIS_DONE_GID_DETERMINE = 2,
|
||||
+ AIS_DONE_MEMPOOL_INIT = 3,
|
||||
+ AIS_DONE_FORK = 4,
|
||||
+ AIS_DONE_LIBAIS_SOCKET = 5,
|
||||
+ AIS_DONE_LIBAIS_BIND = 6,
|
||||
+ AIS_DONE_READKEY = 7,
|
||||
+ AIS_DONE_MAINCONFIGREAD = 8,
|
||||
+ AIS_DONE_LOGSETUP = 9,
|
||||
+ AIS_DONE_AMFCONFIGREAD = 10,
|
||||
+ AIS_DONE_DYNAMICLOAD = 11,
|
||||
+ AIS_DONE_OBJDB = 12,
|
||||
+ AIS_DONE_INIT_SERVICES = 13,
|
||||
+ AIS_DONE_OUT_OF_MEMORY = 14,
|
||||
+ AIS_DONE_FATAL_ERR = 15,
|
||||
+ AIS_DONE_DIR_NOT_PRESENT = 16
|
||||
};
|
||||
|
||||
/*
|
60
corosync-cs2746.patch
Normal file
60
corosync-cs2746.patch
Normal file
@ -0,0 +1,60 @@
|
||||
Index: trunk/exec/objdb.c
|
||||
===================================================================
|
||||
--- trunk/exec/objdb.c (revision 2745)
|
||||
+++ trunk/exec/objdb.c (revision 2746)
|
||||
@@ -1087,6 +1087,10 @@
|
||||
}
|
||||
|
||||
hdb_handle_put (&object_instance_database, object_handle);
|
||||
+ if (res == 0) {
|
||||
+ object_key_changed_notification (object_handle, key_name, key_len,
|
||||
+ object_key->value, object_key->value_len, OBJECT_KEY_REPLACED);
|
||||
+ }
|
||||
objdb_rdunlock();
|
||||
return (res);
|
||||
|
||||
@@ -1170,6 +1174,10 @@
|
||||
}
|
||||
|
||||
hdb_handle_put (&object_instance_database, object_handle);
|
||||
+ if (res == 0) {
|
||||
+ object_key_changed_notification (object_handle, key_name, key_len,
|
||||
+ object_key->value, object_key->value_len, OBJECT_KEY_REPLACED);
|
||||
+ }
|
||||
objdb_rdunlock();
|
||||
return (res);
|
||||
|
||||
@@ -1244,6 +1252,7 @@
|
||||
struct object_key *object_key = NULL;
|
||||
struct list_head *list;
|
||||
int found = 0;
|
||||
+ int value_changed = 0;
|
||||
|
||||
objdb_rdlock();
|
||||
|
||||
@@ -1308,8 +1317,14 @@
|
||||
free(object_key->value);
|
||||
object_key->value = replacement_value;
|
||||
}
|
||||
- memcpy(object_key->value, new_value, new_value_len);
|
||||
- object_key->value_len = new_value_len;
|
||||
+ if (memcmp (object_key->value, new_value, new_value_len) == 0) {
|
||||
+ value_changed = 0;
|
||||
+ }
|
||||
+ else {
|
||||
+ memcpy(object_key->value, new_value, new_value_len);
|
||||
+ object_key->value_len = new_value_len;
|
||||
+ value_changed = 1;
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
ret = -1;
|
||||
@@ -1317,7 +1332,7 @@
|
||||
}
|
||||
|
||||
hdb_handle_put (&object_instance_database, object_handle);
|
||||
- if (ret == 0) {
|
||||
+ if (ret == 0 && value_changed) {
|
||||
object_key_changed_notification (object_handle, key_name, key_len,
|
||||
new_value, new_value_len, OBJECT_KEY_REPLACED);
|
||||
}
|
89
corosync-cs2748.patch
Normal file
89
corosync-cs2748.patch
Normal file
@ -0,0 +1,89 @@
|
||||
Index: trunk/lib/coroipcc.c
|
||||
===================================================================
|
||||
--- trunk/lib/coroipcc.c (revision 2747)
|
||||
+++ trunk/lib/coroipcc.c (revision 2748)
|
||||
@@ -654,42 +654,42 @@
|
||||
goto error_connect;
|
||||
}
|
||||
|
||||
- res = memory_map (
|
||||
+ sys_res = memory_map (
|
||||
control_map_path,
|
||||
"control_buffer-XXXXXX",
|
||||
(void *)&ipc_instance->control_buffer,
|
||||
8192);
|
||||
- if (res == -1) {
|
||||
+ if (sys_res == -1) {
|
||||
res = CS_ERR_LIBRARY;
|
||||
goto error_connect;
|
||||
}
|
||||
|
||||
- res = memory_map (
|
||||
+ sys_res = memory_map (
|
||||
request_map_path,
|
||||
"request_buffer-XXXXXX",
|
||||
(void *)&ipc_instance->request_buffer,
|
||||
request_size);
|
||||
- if (res == -1) {
|
||||
+ if (sys_res == -1) {
|
||||
res = CS_ERR_LIBRARY;
|
||||
goto error_request_buffer;
|
||||
}
|
||||
|
||||
- res = memory_map (
|
||||
+ sys_res = memory_map (
|
||||
response_map_path,
|
||||
"response_buffer-XXXXXX",
|
||||
(void *)&ipc_instance->response_buffer,
|
||||
response_size);
|
||||
- if (res == -1) {
|
||||
+ if (sys_res == -1) {
|
||||
res = CS_ERR_LIBRARY;
|
||||
goto error_response_buffer;
|
||||
}
|
||||
|
||||
- res = circular_memory_map (
|
||||
+ sys_res = circular_memory_map (
|
||||
dispatch_map_path,
|
||||
"dispatch_buffer-XXXXXX",
|
||||
(void *)&ipc_instance->dispatch_buffer,
|
||||
dispatch_size);
|
||||
- if (res == -1) {
|
||||
+ if (sys_res == -1) {
|
||||
res = CS_ERR_LIBRARY;
|
||||
goto error_dispatch_buffer;
|
||||
}
|
||||
@@ -699,7 +699,6 @@
|
||||
sem_init (&ipc_instance->control_buffer->sem1, 1, 0);
|
||||
sem_init (&ipc_instance->control_buffer->sem2, 1, 0);
|
||||
#else
|
||||
-
|
||||
/*
|
||||
* Allocate a semaphore segment
|
||||
*/
|
||||
@@ -718,18 +717,21 @@
|
||||
* an existing shared memory segment for which we have access
|
||||
*/
|
||||
if (errno != EEXIST && errno != EACCES) {
|
||||
+ res = CS_ERR_LIBRARY;
|
||||
goto error_exit;
|
||||
}
|
||||
}
|
||||
|
||||
semun.val = 0;
|
||||
- res = semctl (ipc_instance->semid, 0, SETVAL, semun);
|
||||
- if (res != 0) {
|
||||
+ sys_res = semctl (ipc_instance->semid, 0, SETVAL, semun);
|
||||
+ if (sys_res != 0) {
|
||||
+ res = CS_ERR_LIBRARY;
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
- res = semctl (ipc_instance->semid, 1, SETVAL, semun);
|
||||
- if (res != 0) {
|
||||
+ sys_res = semctl (ipc_instance->semid, 1, SETVAL, semun);
|
||||
+ if (sys_res != 0) {
|
||||
+ res = CS_ERR_LIBRARY;
|
||||
goto error_exit;
|
||||
}
|
||||
#endif
|
123
corosync-cs2754.patch
Normal file
123
corosync-cs2754.patch
Normal file
@ -0,0 +1,123 @@
|
||||
Index: trunk/lib/cfg.c
|
||||
===================================================================
|
||||
--- trunk/lib/cfg.c (revision 2753)
|
||||
+++ trunk/lib/cfg.c (revision 2754)
|
||||
@@ -203,7 +203,7 @@
|
||||
switch (dispatch_data->id) {
|
||||
case MESSAGE_RES_CFG_TESTSHUTDOWN:
|
||||
if (callbacks.corosync_cfg_shutdown_callback == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_lib_cfg_testshutdown = (struct res_lib_cfg_testshutdown *)dispatch_data;
|
||||
Index: trunk/lib/cpg.c
|
||||
===================================================================
|
||||
--- trunk/lib/cpg.c (revision 2753)
|
||||
+++ trunk/lib/cpg.c (revision 2754)
|
||||
@@ -339,7 +339,7 @@
|
||||
switch (dispatch_data->id) {
|
||||
case MESSAGE_RES_CPG_DELIVER_CALLBACK:
|
||||
if (callbacks.cpg_deliver_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_cpg_deliver_callback = (struct res_lib_cpg_deliver_callback *)dispatch_data;
|
||||
@@ -358,7 +358,7 @@
|
||||
|
||||
case MESSAGE_RES_CPG_CONFCHG_CALLBACK:
|
||||
if (callbacks.cpg_confchg_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_cpg_confchg_callback = (struct res_lib_cpg_confchg_callback *)dispatch_data;
|
||||
Index: trunk/lib/votequorum.c
|
||||
===================================================================
|
||||
--- trunk/lib/votequorum.c (revision 2753)
|
||||
+++ trunk/lib/votequorum.c (revision 2754)
|
||||
@@ -742,7 +742,7 @@
|
||||
|
||||
case MESSAGE_RES_VOTEQUORUM_NOTIFICATION:
|
||||
if (callbacks.votequorum_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
res_lib_votequorum_notification = (struct res_lib_votequorum_notification *)dispatch_data;
|
||||
|
||||
@@ -756,7 +756,7 @@
|
||||
|
||||
case MESSAGE_RES_VOTEQUORUM_EXPECTEDVOTES_NOTIFICATION:
|
||||
if (callbacks.votequorum_expectedvotes_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
res_lib_votequorum_expectedvotes_notification = (struct res_lib_votequorum_expectedvotes_notification *)dispatch_data;
|
||||
|
||||
Index: trunk/lib/quorum.c
|
||||
===================================================================
|
||||
--- trunk/lib/quorum.c (revision 2753)
|
||||
+++ trunk/lib/quorum.c (revision 2754)
|
||||
@@ -387,7 +387,7 @@
|
||||
|
||||
case MESSAGE_RES_QUORUM_NOTIFICATION:
|
||||
if (callbacks.quorum_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
res_lib_quorum_notification = (struct res_lib_quorum_notification *)dispatch_data;
|
||||
|
||||
Index: trunk/lib/confdb.c
|
||||
===================================================================
|
||||
--- trunk/lib/confdb.c (revision 2753)
|
||||
+++ trunk/lib/confdb.c (revision 2754)
|
||||
@@ -341,7 +341,7 @@
|
||||
switch (dispatch_data->id) {
|
||||
case MESSAGE_RES_CONFDB_KEY_CHANGE_CALLBACK:
|
||||
if (callbacks.confdb_key_change_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_key_changed_pt = (struct res_lib_confdb_key_change_callback *)dispatch_data;
|
||||
@@ -360,7 +360,7 @@
|
||||
|
||||
case MESSAGE_RES_CONFDB_OBJECT_CREATE_CALLBACK:
|
||||
if (callbacks.confdb_object_create_change_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_object_created_pt = (struct res_lib_confdb_object_create_callback *)dispatch_data;
|
||||
@@ -374,7 +374,7 @@
|
||||
|
||||
case MESSAGE_RES_CONFDB_OBJECT_DESTROY_CALLBACK:
|
||||
if (callbacks.confdb_object_delete_change_notify_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_object_destroyed_pt = (struct res_lib_confdb_object_destroy_callback *)dispatch_data;
|
||||
Index: trunk/lib/evs.c
|
||||
===================================================================
|
||||
--- trunk/lib/evs.c (revision 2753)
|
||||
+++ trunk/lib/evs.c (revision 2754)
|
||||
@@ -279,7 +279,7 @@
|
||||
switch (dispatch_data->id) {
|
||||
case MESSAGE_RES_EVS_DELIVER_CALLBACK:
|
||||
if (callbacks.evs_deliver_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_evs_deliver_callback = (struct res_evs_deliver_callback *)dispatch_data;
|
||||
@@ -292,7 +292,7 @@
|
||||
|
||||
case MESSAGE_RES_EVS_CONFCHG_CALLBACK:
|
||||
if (callbacks.evs_confchg_fn == NULL) {
|
||||
- continue;
|
||||
+ break;
|
||||
}
|
||||
|
||||
res_evs_confchg_callback = (struct res_evs_confchg_callback *)dispatch_data;
|
15
corosync-cs2756.patch
Normal file
15
corosync-cs2756.patch
Normal file
@ -0,0 +1,15 @@
|
||||
Index: trunk/man/corosync.conf.5
|
||||
===================================================================
|
||||
--- trunk/man/corosync.conf.5 (revision 2755)
|
||||
+++ trunk/man/corosync.conf.5 (revision 2756)
|
||||
@@ -119,6 +119,10 @@
|
||||
This specifies the UDP port number. It is possible to use the same multicast
|
||||
address on a network with the corosync services configured for different
|
||||
UDP ports.
|
||||
+Please note corosync uses two UDP ports mcastport (for mcast receives) and
|
||||
+mcastport - 1 (for mcast sends).
|
||||
+If you have multiple clusters on the same network using the same mcastaddr
|
||||
+please configure the mcastports with a gap.
|
||||
|
||||
.PP
|
||||
.PP
|
35
corosync-cs2767.patch
Normal file
35
corosync-cs2767.patch
Normal file
@ -0,0 +1,35 @@
|
||||
Index: trunk/exec/vsf_ykd.c
|
||||
===================================================================
|
||||
--- trunk/exec/vsf_ykd.c (revision 2766)
|
||||
+++ trunk/exec/vsf_ykd.c (revision 2767)
|
||||
@@ -193,7 +193,7 @@
|
||||
struct ykd_header header;
|
||||
int res;
|
||||
|
||||
- header.id = YKD_HEADER_SENDSTATE;
|
||||
+ header.id = YKD_HEADER_ATTEMPT;
|
||||
|
||||
iovec.iov_base = (char *)&header;
|
||||
iovec.iov_len = sizeof (struct ykd_header);
|
||||
@@ -343,6 +343,7 @@
|
||||
int all_received = 1;
|
||||
int state_position = 0;
|
||||
int i;
|
||||
+ struct ykd_header *header = (struct ykd_header *)msg;
|
||||
char *msg_state = (char *)msg + sizeof (struct ykd_header);
|
||||
|
||||
/*
|
||||
@@ -390,6 +391,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Ignore messages from a different state
|
||||
+ */
|
||||
+ if ((ykd_mode == YKD_MODE_SENDSTATE && header->id == YKD_HEADER_ATTEMPT) ||
|
||||
+ (ykd_mode == YKD_MODE_ATTEMPT && header->id == YKD_HEADER_SENDSTATE))
|
||||
+ return;
|
||||
+
|
||||
switch (ykd_mode) {
|
||||
case YKD_MODE_SENDSTATE:
|
||||
assert (msg_len > sizeof (struct ykd_header));
|
54
corosync-cs2785.patch
Normal file
54
corosync-cs2785.patch
Normal file
@ -0,0 +1,54 @@
|
||||
Index: corosync-1.2.1/services/cpg.c
|
||||
===================================================================
|
||||
--- corosync-1.2.1.orig/services/cpg.c
|
||||
+++ corosync-1.2.1/services/cpg.c
|
||||
@@ -414,6 +414,27 @@ struct req_exec_cpg_downlist {
|
||||
|
||||
static struct req_exec_cpg_downlist g_req_exec_cpg_downlist;
|
||||
|
||||
+static int memb_list_remove_value (unsigned int *list,
|
||||
+ size_t list_entries, int value)
|
||||
+{
|
||||
+ int j;
|
||||
+ int found = 0;
|
||||
+
|
||||
+ for (j = 0; j < list_entries; j++) {
|
||||
+ if (list[j] == value) {
|
||||
+ /* mark next values to be copied down */
|
||||
+ found = 1;
|
||||
+ }
|
||||
+ else if (found) {
|
||||
+ list[j-1] = list[j];
|
||||
+ }
|
||||
+ }
|
||||
+ if (found)
|
||||
+ return (list_entries - 1);
|
||||
+ else
|
||||
+ return list_entries;
|
||||
+}
|
||||
+
|
||||
static void cpg_sync_init_v2 (
|
||||
const unsigned int *trans_list,
|
||||
size_t trans_list_entries,
|
||||
@@ -432,6 +453,21 @@ static void cpg_sync_init_v2 (
|
||||
sizeof (unsigned int));
|
||||
my_member_list_entries = member_list_entries;
|
||||
|
||||
+ for (i = 0; i < my_old_member_list_entries; i++) {
|
||||
+ found = 0;
|
||||
+ for (j = 0; j < trans_list_entries; j++) {
|
||||
+ if (my_old_member_list[i] == trans_list[j]) {
|
||||
+ found = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (found == 0) {
|
||||
+ my_member_list_entries = memb_list_remove_value (
|
||||
+ my_member_list, my_member_list_entries,
|
||||
+ my_old_member_list[i]);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
for (i = 0; i < my_member_list_entries; i++) {
|
||||
if (my_member_list[i] < lowest_nodeid) {
|
||||
lowest_nodeid = my_member_list[i];
|
76
corosync-cs2787.patch
Normal file
76
corosync-cs2787.patch
Normal file
@ -0,0 +1,76 @@
|
||||
Index: trunk/exec/objdb.c
|
||||
===================================================================
|
||||
--- trunk/exec/objdb.c (revision 2786)
|
||||
+++ trunk/exec/objdb.c (revision 2787)
|
||||
@@ -1316,6 +1316,8 @@
|
||||
goto error_exit;
|
||||
free(object_key->value);
|
||||
object_key->value = replacement_value;
|
||||
+ memset (object_key->value, 0, new_value_len);
|
||||
+ object_key->value_len = new_value_len;
|
||||
}
|
||||
if (memcmp (object_key->value, new_value, new_value_len) == 0) {
|
||||
value_changed = 0;
|
||||
Index: trunk/exec/coroipcs.c
|
||||
===================================================================
|
||||
--- trunk/exec/coroipcs.c (revision 2786)
|
||||
+++ trunk/exec/coroipcs.c (revision 2787)
|
||||
@@ -727,6 +727,7 @@
|
||||
mar_res_setup_t res_setup;
|
||||
unsigned int res;
|
||||
|
||||
+ memset (&res_setup, 0, sizeof (res_setup));
|
||||
res_setup.error = error;
|
||||
|
||||
retry_send:
|
||||
Index: trunk/exec/logsys.c
|
||||
===================================================================
|
||||
--- trunk/exec/logsys.c (revision 2786)
|
||||
+++ trunk/exec/logsys.c (revision 2787)
|
||||
@@ -731,6 +731,8 @@
|
||||
int log_msg;
|
||||
char buf[COMBINE_BUFFER_SIZE];
|
||||
|
||||
+ memset (buf, 0, sizeof (buf));
|
||||
+
|
||||
/*
|
||||
* Signal wthread_create that the initialization process may continue
|
||||
*/
|
||||
@@ -1111,6 +1113,7 @@
|
||||
return (-1);
|
||||
}
|
||||
|
||||
+ memset (flt_data, 0, flt_real_size);
|
||||
/*
|
||||
* flt_data_size tracks data by ints and not bytes/chars.
|
||||
*
|
||||
Index: trunk/exec/main.c
|
||||
===================================================================
|
||||
--- trunk/exec/main.c (revision 2786)
|
||||
+++ trunk/exec/main.c (revision 2787)
|
||||
@@ -655,13 +655,12 @@
|
||||
mtt_rx_token = (total_mtt_rx_token / token_count);
|
||||
avg_backlog_calc = (total_backlog_calc / token_count);
|
||||
avg_token_holdtime = (total_token_holdtime / token_count);
|
||||
-
|
||||
objdb->object_key_replace (stats->mrp->srp->hdr.handle,
|
||||
"mtt_rx_token", strlen("mtt_rx_token"),
|
||||
&mtt_rx_token, sizeof (mtt_rx_token));
|
||||
objdb->object_key_replace (stats->mrp->srp->hdr.handle,
|
||||
"avg_token_workload", strlen("avg_token_workload"),
|
||||
- &avg_token_holdtime, sizeof (avg_backlog_calc));
|
||||
+ &avg_token_holdtime, sizeof (avg_token_holdtime));
|
||||
objdb->object_key_replace (stats->mrp->srp->hdr.handle,
|
||||
"avg_backlog_calc", strlen("avg_backlog_calc"),
|
||||
&avg_backlog_calc, sizeof (avg_backlog_calc));
|
||||
@@ -782,8 +781,8 @@
|
||||
"avg_token_workload", &zero_32,
|
||||
sizeof (zero_32), OBJDB_VALUETYPE_UINT32);
|
||||
objdb->object_key_create_typed (stats->mrp->srp->hdr.handle,
|
||||
- "avg_backlog_calc", &zero_64,
|
||||
- sizeof (zero_64), OBJDB_VALUETYPE_UINT64);
|
||||
+ "avg_backlog_calc", &zero_32,
|
||||
+ sizeof (zero_32), OBJDB_VALUETYPE_UINT32);
|
||||
objdb->object_key_create_typed (stats->mrp->srp->hdr.handle,
|
||||
"rx_msg_dropped", &zero_64,
|
||||
sizeof (zero_64), OBJDB_VALUETYPE_UINT64);
|
25
corosync-cs2789.patch
Normal file
25
corosync-cs2789.patch
Normal file
@ -0,0 +1,25 @@
|
||||
Index: trunk/lib/coroipcc.c
|
||||
===================================================================
|
||||
--- trunk/lib/coroipcc.c (revision 2788)
|
||||
+++ trunk/lib/coroipcc.c (revision 2789)
|
||||
@@ -478,11 +478,18 @@
|
||||
pfd.fd = ipc_instance->fd;
|
||||
pfd.events = 0;
|
||||
|
||||
- poll (&pfd, 1, 0);
|
||||
- if (pfd.revents == POLLERR || pfd.revents == POLLHUP) {
|
||||
+ res = poll (&pfd, 1, 0);
|
||||
+
|
||||
+ if (res == -1 && errno != EINTR) {
|
||||
return (CS_ERR_LIBRARY);
|
||||
}
|
||||
|
||||
+ if (res == 1) {
|
||||
+ if (pfd.revents == POLLERR || pfd.revents == POLLHUP || pfd.revents == POLLNVAL) {
|
||||
+ return (CS_ERR_LIBRARY);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
goto retry_semwait;
|
||||
}
|
||||
|
13
corosync-cs2791.patch
Normal file
13
corosync-cs2791.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: trunk/man/corosync.conf.5
|
||||
===================================================================
|
||||
--- trunk/man/corosync.conf.5 (revision 2790)
|
||||
+++ trunk/man/corosync.conf.5 (revision 2791)
|
||||
@@ -350,7 +350,7 @@
|
||||
The default is 1000 millseconds.
|
||||
|
||||
.TP
|
||||
-fail_to_recv_const
|
||||
+fail_recv_const
|
||||
This constant specifies how many rotations of the token without receiving any
|
||||
of the messages when messages should be received may occur before a new
|
||||
configuration is formed.
|
33
corosync-cs2792.patch
Normal file
33
corosync-cs2792.patch
Normal file
@ -0,0 +1,33 @@
|
||||
Index: trunk/exec/totemsrp.c
|
||||
===================================================================
|
||||
--- trunk/exec/totemsrp.c (revision 2791)
|
||||
+++ trunk/exec/totemsrp.c (revision 2792)
|
||||
@@ -1390,6 +1390,8 @@
|
||||
{
|
||||
if (instance->old_ring_state_saved == 0) {
|
||||
instance->old_ring_state_saved = 1;
|
||||
+ memcpy (&instance->my_old_ring_id, &instance->my_ring_id,
|
||||
+ sizeof (struct memb_ring_id));
|
||||
instance->old_ring_state_aru = instance->my_aru;
|
||||
instance->old_ring_state_high_seq_received = instance->my_high_seq_received;
|
||||
log_printf (instance->totemsrp_log_level_debug,
|
||||
@@ -1401,7 +1403,9 @@
|
||||
static void ring_state_restore (struct totemsrp_instance *instance)
|
||||
{
|
||||
if (instance->old_ring_state_saved) {
|
||||
- totemip_zero_set(&instance->my_ring_id.rep);
|
||||
+ memcpy (&instance->my_ring_id, &instance->my_old_ring_id,
|
||||
+ sizeof (struct memb_ring_id));
|
||||
+
|
||||
instance->my_aru = instance->old_ring_state_aru;
|
||||
instance->my_high_seq_received = instance->old_ring_state_high_seq_received;
|
||||
log_printf (instance->totemsrp_log_level_debug,
|
||||
@@ -1412,6 +1416,8 @@
|
||||
|
||||
static void old_ring_state_reset (struct totemsrp_instance *instance)
|
||||
{
|
||||
+ log_printf (instance->totemsrp_log_level_debug,
|
||||
+ "Resetting old ring state\n");
|
||||
instance->old_ring_state_saved = 0;
|
||||
}
|
||||
|
13
corosync-cs2793.patch
Normal file
13
corosync-cs2793.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: trunk/exec/totemsrp.c
|
||||
===================================================================
|
||||
--- trunk/exec/totemsrp.c (revision 2792)
|
||||
+++ trunk/exec/totemsrp.c (revision 2793)
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
#define LOCALHOST_IP inet_addr("127.0.0.1")
|
||||
#define QUEUE_RTR_ITEMS_SIZE_MAX 16384 /* allow 16384 retransmit items */
|
||||
-#define RETRANS_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 messages to be queued */
|
||||
+#define RETRANS_MESSAGE_QUEUE_SIZE_MAX 16384 /* allow 500 messages to be queued */
|
||||
#define RECEIVED_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 messages to be queued */
|
||||
#define MAXIOVS 5
|
||||
#define RETRANSMIT_ENTRIES_MAX 30
|
13
corosync-cs2794.patch
Normal file
13
corosync-cs2794.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: trunk/exec/totemsrp.c
|
||||
===================================================================
|
||||
--- trunk/exec/totemsrp.c (revision 2793)
|
||||
+++ trunk/exec/totemsrp.c (revision 2794)
|
||||
@@ -2466,7 +2466,7 @@
|
||||
orf_token->rtr_list_entries -= 1;
|
||||
assert (orf_token->rtr_list_entries >= 0);
|
||||
memmove (&rtr_list[i], &rtr_list[i + 1],
|
||||
- sizeof (struct rtr_item) * (orf_token->rtr_list_entries));
|
||||
+ sizeof (struct rtr_item) * (orf_token->rtr_list_entries - i));
|
||||
|
||||
instance->stats.mcast_retx++;
|
||||
instance->fcc_remcast_current++;
|
13
corosync-cs2795.patch
Normal file
13
corosync-cs2795.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: trunk/exec/totemsrp.c
|
||||
===================================================================
|
||||
--- trunk/exec/totemsrp.c (revision 2794)
|
||||
+++ trunk/exec/totemsrp.c (revision 2795)
|
||||
@@ -391,7 +391,7 @@
|
||||
|
||||
struct list_head token_callback_sent_listhead;
|
||||
|
||||
- char *orf_token_retransmit[TOKEN_SIZE_MAX];
|
||||
+ char orf_token_retransmit[TOKEN_SIZE_MAX];
|
||||
|
||||
int orf_token_retransmit_size;
|
||||
|
17
corosync-cs2800.patch
Normal file
17
corosync-cs2800.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Index: trunk/exec/main.c
|
||||
===================================================================
|
||||
--- trunk/exec/main.c (revision 2799)
|
||||
+++ trunk/exec/main.c (revision 2800)
|
||||
@@ -832,6 +832,12 @@
|
||||
serialize_unlock();
|
||||
return;
|
||||
}
|
||||
+ if (fn_id >= ais_service[service]->exec_engine_count) {
|
||||
+ log_printf(LOGSYS_LEVEL_WARNING, "discarded unknown message %d for service %d (max id %d)",
|
||||
+ fn_id, service, ais_service[service]->exec_engine_count);
|
||||
+ serialize_unlock();
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
objdb->object_key_increment (service_stats_handle[service][fn_id],
|
||||
"rx", strlen("rx"),
|
19
corosync-cs2856.patch
Normal file
19
corosync-cs2856.patch
Normal file
@ -0,0 +1,19 @@
|
||||
Index: trunk/man/corosync.conf.5
|
||||
===================================================================
|
||||
--- trunk/man/corosync.conf.5 (revision 2855)
|
||||
+++ trunk/man/corosync.conf.5 (revision 2856)
|
||||
@@ -88,9 +88,11 @@
|
||||
|
||||
.TP
|
||||
bindnetaddr
|
||||
-This specifies the address which the corosync executive should bind.
|
||||
-This address should always end in zero. If the totem traffic should
|
||||
-be routed over 192.168.5.92, set bindnetaddr to 192.168.5.0.
|
||||
+This specifies the network address the corosync executive should bind
|
||||
+to. For example, if the local interface is 192.168.5.92 with netmask
|
||||
+255.255.255.0, set bindnetaddr to 192.168.5.0. If the local interface
|
||||
+is 192.168.5.92 with netmask 255.255.255.192, set bindnetaddr to
|
||||
+192.168.5.64, and so forth.
|
||||
|
||||
This may also be an IPV6 address, in which case IPV6 networking will be used.
|
||||
In this case, the full address must be specified and there is no automatic
|
142
corosync-revert-cs2429.patch
Normal file
142
corosync-revert-cs2429.patch
Normal file
@ -0,0 +1,142 @@
|
||||
Only in corosync-1.2.0/exec: cscope.out
|
||||
diff -ur corosync-1.2.0.orig//exec/totemip.c corosync-1.2.0/exec/totemip.c
|
||||
--- corosync-1.2.0.orig//exec/totemip.c 2009-12-08 01:25:45.000000000 +0100
|
||||
+++ corosync-1.2.0/exec/totemip.c 2010-03-04 19:32:22.049615000 +0100
|
||||
@@ -376,9 +376,6 @@
|
||||
*/
|
||||
totemip_sockaddr_to_totemip_convert((struct sockaddr_storage *)sockaddr_in, boundto);
|
||||
boundto->nodeid = sockaddr_in->sin_addr.s_addr;
|
||||
-#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
- boundto->nodeid = swab32 (boundto->nodeid);
|
||||
-#endif
|
||||
|
||||
if (ioctl(id_fd, SIOCGLIFFLAGS, &lifreq[i]) < 0) {
|
||||
printf ("couldn't do ioctl\n");
|
||||
@@ -609,9 +606,6 @@
|
||||
if (ipaddr.family == AF_INET && ipaddr.nodeid == 0) {
|
||||
unsigned int nodeid = 0;
|
||||
memcpy (&nodeid, ipaddr.addr, sizeof (int));
|
||||
-#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
- nodeid = swab32 (nodeid);
|
||||
-#endif
|
||||
if (mask_high_bit) {
|
||||
nodeid &= 0x7FFFFFFF;
|
||||
}
|
||||
Only in corosync-1.2.0/exec: totemip.c.orig
|
||||
diff -ur corosync-1.2.0.orig//test/testcpg.c corosync-1.2.0/test/testcpg.c
|
||||
--- corosync-1.2.0.orig//test/testcpg.c 2009-09-20 08:04:02.000000000 +0200
|
||||
+++ corosync-1.2.0/test/testcpg.c 2010-03-04 19:30:03.590982000 +0100
|
||||
@@ -48,7 +48,6 @@
|
||||
|
||||
#include <corosync/corotypes.h>
|
||||
#include <corosync/cpg.h>
|
||||
-#include <corosync/swab.h>
|
||||
|
||||
static int quit = 0;
|
||||
static int show_ip = 0;
|
||||
@@ -62,24 +61,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static char * node_pid_format(unsigned int nodeid,int pid) {
|
||||
- static char buffer[100];
|
||||
- if (show_ip) {
|
||||
- struct in_addr saddr;
|
||||
-#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
- saddr.s_addr = swab32(nodeid);
|
||||
-#else
|
||||
- saddr.s_addr = nodeid;
|
||||
-#endif
|
||||
- sprintf(buffer, "node/pid %s/%d", inet_ntoa(saddr),pid);
|
||||
- }
|
||||
- else {
|
||||
- sprintf(buffer, "node/pid %d/%d", nodeid, pid);
|
||||
- }
|
||||
- return buffer;
|
||||
-}
|
||||
-
|
||||
-
|
||||
static void DeliverCallback (
|
||||
cpg_handle_t handle,
|
||||
const struct cpg_name *groupName,
|
||||
@@ -88,9 +69,18 @@
|
||||
void *msg,
|
||||
size_t msg_len)
|
||||
{
|
||||
- printf("DeliverCallback: message (len=%lu)from %s: '%s'\n",
|
||||
- (unsigned long int) msg_len, node_pid_format(nodeid, pid),
|
||||
+ if (show_ip) {
|
||||
+ struct in_addr saddr;
|
||||
+ saddr.s_addr = nodeid;
|
||||
+ printf("DeliverCallback: message (len=%lu)from node/pid %s/%d: '%s'\n",
|
||||
+ (unsigned long int) msg_len,
|
||||
+ inet_ntoa(saddr), pid, (const char *)msg);
|
||||
+ }
|
||||
+ else {
|
||||
+ printf("DeliverCallback: message (len=%lu)from node/pid %d/%d: '%s'\n",
|
||||
+ (unsigned long int) msg_len, nodeid, pid,
|
||||
(const char *)msg);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void ConfchgCallback (
|
||||
@@ -101,27 +91,51 @@
|
||||
const struct cpg_address *joined_list, size_t joined_list_entries)
|
||||
{
|
||||
int i;
|
||||
+ struct in_addr saddr;
|
||||
|
||||
printf("\nConfchgCallback: group '");
|
||||
print_cpgname(groupName);
|
||||
printf("'\n");
|
||||
for (i=0; i<joined_list_entries; i++) {
|
||||
- printf("joined %s reason: %d\n",
|
||||
- node_pid_format(joined_list[i].nodeid, joined_list[i].pid),
|
||||
- joined_list[i].reason);
|
||||
+ if (show_ip) {
|
||||
+ saddr.s_addr = joined_list[i].nodeid;
|
||||
+ printf("joined node/pid: %s/%d reason: %d\n",
|
||||
+ inet_ntoa (saddr), joined_list[i].pid,
|
||||
+ joined_list[i].reason);
|
||||
+ }
|
||||
+ else {
|
||||
+ printf("joined node/pid: %d/%d reason: %d\n",
|
||||
+ joined_list[i].nodeid, joined_list[i].pid,
|
||||
+ joined_list[i].reason);
|
||||
+ }
|
||||
}
|
||||
|
||||
for (i=0; i<left_list_entries; i++) {
|
||||
- printf("left %s reason: %d\n",
|
||||
- node_pid_format(left_list[i].nodeid, left_list[i].pid),
|
||||
- left_list[i].reason);
|
||||
+ if (show_ip) {
|
||||
+ saddr.s_addr = left_list[i].nodeid;
|
||||
+ printf("left node/pid: %s/%d reason: %d\n",
|
||||
+ inet_ntoa (saddr), left_list[i].pid,
|
||||
+ left_list[i].reason);
|
||||
+ }
|
||||
+ else {
|
||||
+ printf("left node/pid: %d/%d reason: %d\n",
|
||||
+ left_list[i].nodeid, left_list[i].pid,
|
||||
+ left_list[i].reason);
|
||||
+ }
|
||||
}
|
||||
|
||||
printf("nodes in group now %lu\n",
|
||||
(unsigned long int) member_list_entries);
|
||||
for (i=0; i<member_list_entries; i++) {
|
||||
- printf("%s\n",
|
||||
- node_pid_format(member_list[i].nodeid, member_list[i].pid));
|
||||
+ if (show_ip) {
|
||||
+ saddr.s_addr = member_list[i].nodeid;
|
||||
+ printf("node/pid: %s/%d\n",
|
||||
+ inet_ntoa (saddr), member_list[i].pid);
|
||||
+ }
|
||||
+ else {
|
||||
+ printf("node/pid: %d/%d\n",
|
||||
+ member_list[i].nodeid, member_list[i].pid);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Is it us??
|
38
corosync-sync-barrier.patch
Normal file
38
corosync-sync-barrier.patch
Normal file
@ -0,0 +1,38 @@
|
||||
Index: syncv2.c
|
||||
===================================================================
|
||||
--- corosync-1.2.1/exec/syncv2.c (revision 2739)
|
||||
+++ corosync-1.2.1/exec/syncv2.c (working copy)
|
||||
@@ -244,6 +244,11 @@
|
||||
}
|
||||
}
|
||||
if (barrier_reached) {
|
||||
+ log_printf (LOGSYS_LEVEL_DEBUG, "Committing synchronization for %s\n",
|
||||
+ my_service_list[my_processing_idx].name);
|
||||
+ my_service_list[my_processing_idx].state = ACTIVATE;
|
||||
+ my_service_list[my_processing_idx].sync_activate ();
|
||||
+
|
||||
my_processing_idx += 1;
|
||||
if (my_service_list_entries == my_processing_idx) {
|
||||
my_memb_determine_list_entries = 0;
|
||||
@@ -551,19 +556,12 @@
|
||||
if (my_service_list[my_processing_idx].state == PROCESS) {
|
||||
my_service_list[my_processing_idx].state = PROCESS;
|
||||
res = my_service_list[my_processing_idx].sync_process ();
|
||||
- if (res != -1) {
|
||||
- my_service_list[my_processing_idx].state = ACTIVATE;
|
||||
+ if (res == 0) {
|
||||
+ sync_barrier_enter();
|
||||
} else {
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
- if (my_service_list[my_processing_idx].state == ACTIVATE) {
|
||||
- my_service_list[my_processing_idx].state = ACTIVATE;
|
||||
- my_service_list[my_processing_idx].sync_activate ();
|
||||
- log_printf (LOGSYS_LEVEL_DEBUG, "Committing synchronization for %s\n",
|
||||
- my_service_list[my_processing_idx].name);
|
||||
- sync_barrier_enter();
|
||||
- }
|
||||
return (0);
|
||||
}
|
||||
|
95
corosync-trunk-reset-pause-timestamp-on-events.patch
Normal file
95
corosync-trunk-reset-pause-timestamp-on-events.patch
Normal file
@ -0,0 +1,95 @@
|
||||
Index: exec/totemsrp.c
|
||||
===================================================================
|
||||
--- corosync-1.2.1/exec/totemsrp.c (revision 2662)
|
||||
+++ corosync-1.2.1/exec/totemsrp.c (working copy)
|
||||
@@ -3427,6 +3427,7 @@
|
||||
cancel_heartbeat_timeout(instance);
|
||||
}
|
||||
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0); /* discard token */
|
||||
}
|
||||
|
||||
@@ -3451,6 +3452,7 @@
|
||||
cancel_heartbeat_timeout(instance);
|
||||
}
|
||||
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0); /* discard token */
|
||||
}
|
||||
|
||||
@@ -3605,6 +3607,7 @@
|
||||
cancel_heartbeat_timeout(instance);
|
||||
}
|
||||
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -3775,6 +3778,7 @@
|
||||
memb_set_merge (&mcast_header.system_from, 1,
|
||||
instance->my_proc_list, &instance->my_proc_list_entries);
|
||||
memb_state_gather_enter (instance, 8);
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
break;
|
||||
@@ -3789,6 +3793,7 @@
|
||||
instance->stats.rx_msg_dropped++;
|
||||
break;
|
||||
}
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -3831,6 +3836,7 @@
|
||||
}
|
||||
|
||||
/* TODO remove from retrans message queue for old ring in recovery state */
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -3856,6 +3862,7 @@
|
||||
if (memcmp (&instance->my_ring_id, &memb_merge_detect.ring_id,
|
||||
sizeof (struct memb_ring_id)) == 0) {
|
||||
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -3891,6 +3898,8 @@
|
||||
/* do nothing in recovery */
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -4161,6 +4170,7 @@
|
||||
}
|
||||
break;
|
||||
}
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -4242,6 +4252,8 @@
|
||||
}
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -4261,6 +4273,8 @@
|
||||
timer_function_token_retransmit_timeout (instance);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ timer_function_pause_timeout (instance);
|
||||
return (0);
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
From ee2d2224c0795c1fa9f1163c37ab61b446c5c393 Mon Sep 17 00:00:00 2001
|
||||
From: Angus Salkeld <asalkeld@redhat.com>
|
||||
Date: Fri, 9 Apr 2010 20:44:23 +1000
|
||||
Subject: [PATCH] When sync is aborted clear the "my_ring_id" variable.
|
||||
|
||||
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
|
||||
---
|
||||
exec/syncv2.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/exec/syncv2.c b/exec/syncv2.c
|
||||
index 57b501b..53e1650 100644
|
||||
--- a/exec/syncv2.c
|
||||
+++ b/exec/syncv2.c
|
||||
@@ -665,6 +665,9 @@ void sync_v2_abort (void)
|
||||
schedwrk_destroy (my_schedwrk_handle);
|
||||
my_service_list[my_processing_idx].sync_abort ();
|
||||
}
|
||||
+
|
||||
+ /* prevent and more incoming messages to be dumped */
|
||||
+ memset (&my_ring_id, 0, sizeof (struct memb_ring_id));
|
||||
}
|
||||
|
||||
void sync_v2_memb_list_determine (const struct memb_ring_id *ring_id)
|
||||
--
|
||||
1.6.6.1
|
||||
|
142
corosync.changes
Normal file
142
corosync.changes
Normal file
@ -0,0 +1,142 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 2 11:53:28 UTC 2010 - tserong@novell.com
|
||||
|
||||
- Set sensible defaults for Pacemaker in corosync.conf.example (bnc#610663)
|
||||
- Clarify bindnetaddr option in corosync.conf.5 manpage (upstream cs 2856)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 10 14:59:13 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- Handle POLLNVAL in coroipcc
|
||||
- Save the ring id and restore it properly when the recovery operation fails
|
||||
- increase maximum entries in the retransmit queue when recovery takes place.
|
||||
- fix one-off error in memove
|
||||
- discard and report unknown messages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 26 14:40:44 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- fix valgrind reported problems (upstream cs 2787)
|
||||
- Memset for res_setup variable in coroipcs:req_setup_send
|
||||
- Two memset in logsys for buffers
|
||||
- Problem in corosync_totem_stats_updater where
|
||||
avg_token_holdtime has size of avg_backlog_calc
|
||||
- corosync_totem_stats_init where avg_backlog_calc is 32 bits (not 64)
|
||||
- objdb problem if new_valie_len != object->value_len. In
|
||||
such case newly allocated memory is not initialized and in some
|
||||
situations, value_len is not updated.
|
||||
- select a new sync member if the node with the lowest nodeid has
|
||||
left (upstream cs 2785)
|
||||
- fix a crash in YKD
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 9 15:09:11 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- clear the ring id on sync abort (bnc#590666)
|
||||
- fix unloading of evs
|
||||
- change sign of all exit codes (normal error exit is now 1)
|
||||
- objdb: fix key change notifications (don't notify if the key
|
||||
wasn't changed; notify on key inc/dec)
|
||||
- fix possible lockup when a dispatch handler function is NULL
|
||||
- upstream version cs 2756
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 29 14:15:43 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- fix lockup that occurs sometimes before exiting
|
||||
- fix problem where retransmissions don't occur resulting in failure
|
||||
to receive condition
|
||||
- add a reload callback to libconfdb
|
||||
- support for lib_cpg_finalize
|
||||
- cpg join with undelivered leave message (fixes problems with nodes
|
||||
joining cpg twice in quick succession)
|
||||
- fix error handling to avoid segfaults/leaks on error
|
||||
in coroipcc_service_connect
|
||||
- upstream release 1.2.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 4 18:43:07 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- retain nodeid compatibility with openais (revert patch from cs 2429)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 3 16:41:12 CST 2010 - jjzhang@novell.com
|
||||
|
||||
- minor enhancement to corosync.conf man page (bnc#580180)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 2 22:01:26 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- upstream version cs 2667
|
||||
- allow empty (default) consensus timeout
|
||||
- fix freeze of IPC library connection on sem_wait
|
||||
- fix malloc deadlock in signal handler (rhbz#547511)
|
||||
- fix coroipcs message corruption that occurs when a message fills the
|
||||
remainder of the dispatch buffer with a full message
|
||||
- totemsrp: fix transitional configuration changes with long token timeouts
|
||||
- remove a double list_del() when a tracking CFG client shuts down without
|
||||
calling cfg_track_stop (it caused corosync to crash)
|
||||
- use nodeid instead of localhost ip for the case when binding to a loalhost
|
||||
interface
|
||||
- fix corosync shutdown process
|
||||
- add augeas lense for corosync.conf
|
||||
- patch to set unset value in token hold cancel structure as to not crash
|
||||
wireshark
|
||||
- convert unsafe function to thread-safe reentrant equivalents
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 22 15:53:00 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- SP1 beta5 (no code changes)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 8 14:53:31 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- turn timestamp off in corosync.conf.example (there was a problem
|
||||
reported in connection with not thread-safe glibc functions used
|
||||
in concert with this option, which hasn't yet been resolved)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 27 13:44:58 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- add cs2646 patch from upstream, fixes cs2642
|
||||
- add patch to accept on/off for the various log directives (bnc#573451)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 21 14:21:44 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- %pre script moved to openais
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 18 16:36:24 UTC 2010 - dmuhamedagic@novell.com
|
||||
|
||||
- remove init script
|
||||
- add %pre script to copy openais.conf and authkey to /etc/corosync
|
||||
- add patch 2642 (parser fix)
|
||||
- fix some obsoletes/requires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 11 16:08:35 UTC 2010 - lmb@novell.com
|
||||
|
||||
- Update to corosync 1.2.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 29 10:23:21 UTC 2009 - dmuhamedagic@novell.com
|
||||
|
||||
- init script changes:
|
||||
+ replace killall with checkproc, otherwise corosync can't stop
|
||||
+ test if sbd/lrmadmin exist, because corosync has no dependency
|
||||
on cluster-glue
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 15 15:27:37 UTC 2009 - dmuhamedagic@novell.com
|
||||
|
||||
- update to the corosync upstream release 1.2.0
|
||||
- add suse init script
|
||||
- don't create rccorosync, because users should be using
|
||||
rcopenais to start a cluster
|
||||
- rename corosynclib to libcorosync4 (similar for the devel package)
|
||||
(http://en.opensuse.org/Shared_Library_Packaging_Policy)
|
||||
- Autotools generated version from the released upstream version 1.2.0
|
||||
- some specfile changes (initddir -> initrddir, header)
|
||||
|
101
corosync.conf.example.patch
Normal file
101
corosync.conf.example.patch
Normal file
@ -0,0 +1,101 @@
|
||||
Index: corosync-1.2.1/conf/corosync.conf.example
|
||||
===================================================================
|
||||
--- corosync-1.2.1.orig/conf/corosync.conf.example
|
||||
+++ corosync-1.2.1/conf/corosync.conf.example
|
||||
@@ -1,32 +1,78 @@
|
||||
# Please read the corosync.conf.5 manual page
|
||||
compatibility: whitetank
|
||||
|
||||
+aisexec {
|
||||
+ # Run as root - this is necessary to be able to manage
|
||||
+ # resources with Pacemaker
|
||||
+ user: root
|
||||
+ group: root
|
||||
+}
|
||||
+
|
||||
+service {
|
||||
+ # Load the Pacemaker Cluster Resource Manager
|
||||
+ ver: 0
|
||||
+ name: pacemaker
|
||||
+ use_mgmtd: yes
|
||||
+ use_logd: yes
|
||||
+}
|
||||
+
|
||||
totem {
|
||||
- version: 2
|
||||
- secauth: off
|
||||
- threads: 0
|
||||
+ # The only valid version is 2
|
||||
+ version: 2
|
||||
+
|
||||
+ # 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
|
||||
+
|
||||
+ # How long to wait for consensus to be achieved before starting
|
||||
+ # a new round of membership configuration (ms)
|
||||
+ consensus: 6000
|
||||
+
|
||||
+ # Turn off the virtual synchrony filter
|
||||
+ vsftype: none
|
||||
+
|
||||
+ # 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)
|
||||
+ clear_node_high_bit: yes
|
||||
+
|
||||
+ # Disable encryption
|
||||
+ secauth: off
|
||||
+
|
||||
+ # How many threads to use for encryption/decryption
|
||||
+ threads: 0
|
||||
+
|
||||
+ # Optionally assign a fixed node id (integer)
|
||||
+ # nodeid: 1234
|
||||
+
|
||||
interface {
|
||||
- ringnumber: 0
|
||||
- bindnetaddr: 192.168.1.1
|
||||
- mcastaddr: 226.94.1.1
|
||||
- mcastport: 5405
|
||||
+ ringnumber: 0
|
||||
+
|
||||
+ # The following values need to be set based on your environment
|
||||
+ bindnetaddr: 192.168.1.0
|
||||
+ mcastaddr: 226.94.1.1
|
||||
+ mcastport: 5405
|
||||
}
|
||||
}
|
||||
|
||||
logging {
|
||||
- fileline: off
|
||||
- to_stderr: yes
|
||||
- to_logfile: yes
|
||||
- to_syslog: yes
|
||||
- logfile: /tmp/corosync.log
|
||||
- debug: off
|
||||
- timestamp: off
|
||||
- logger_subsys {
|
||||
- subsys: AMF
|
||||
- debug: off
|
||||
- }
|
||||
+ fileline: off
|
||||
+ to_stderr: no
|
||||
+ to_logfile: no
|
||||
+ to_syslog: yes
|
||||
+ syslog_facility: daemon
|
||||
+ debug: off
|
||||
+ timestamp: off
|
||||
}
|
||||
|
||||
amf {
|
||||
mode: disabled
|
||||
}
|
||||
+
|
289
corosync.spec
Normal file
289
corosync.spec
Normal file
@ -0,0 +1,289 @@
|
||||
#
|
||||
# spec file for package corosync (Version 1.2.1)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
%if 0%{?sles_version} == 11
|
||||
%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
|
||||
Version: 1.2.1
|
||||
Release: 1
|
||||
License: BSD3c
|
||||
Group: System Environment/Base
|
||||
Url: http://www.openais.org
|
||||
Source0: http://developer.osdl.org/dev/openais/downloads/%{name}-%{version}/%{name}-%{version}.tar.gz
|
||||
Patch1: corosync-confexample-timestamp.patch
|
||||
Patch2: corosync-revert-cs2429.patch
|
||||
Patch3: corosync-cs2729.patch
|
||||
Patch4: corosync-cs2731.patch
|
||||
Patch5: corosync-cs2739.patch
|
||||
Patch6: corosync-cs2746.patch
|
||||
Patch7: corosync-cs2748.patch
|
||||
Patch8: corosync-sync-barrier.patch
|
||||
Patch9: corosync-cs2754.patch
|
||||
Patch10: corosync-cs2756.patch
|
||||
Patch11: corosync-trunk-reset-pause-timestamp-on-events.patch
|
||||
Patch12: corosync-when-sync-is-aborted-clear-the-my_ring_id-variable.patch
|
||||
Patch13: corosync-cs2767.patch
|
||||
Patch14: corosync-cs2785.patch
|
||||
Patch15: corosync-cs2787.patch
|
||||
Patch16: corosync-cs2789.patch
|
||||
Patch17: corosync-cs2791.patch
|
||||
Patch18: corosync-cs2792.patch
|
||||
Patch19: corosync-cs2793.patch
|
||||
Patch20: corosync-cs2794.patch
|
||||
Patch21: corosync-cs2795.patch
|
||||
Patch22: corosync-cs2800.patch
|
||||
Patch23: corosync.conf.example.patch
|
||||
Patch24: corosync-cs2856.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
# Runtime bits
|
||||
Requires: libcorosync4 = %{version}-%{release}
|
||||
Requires(pre): /usr/sbin/useradd
|
||||
Requires(post): /sbin/chkconfig
|
||||
Requires(preun): /sbin/chkconfig
|
||||
Conflicts: openais <= 0.89, libopenais2 <= 0.89, libopenais-devel <= 0.89
|
||||
%define buildtrunk 0
|
||||
%{?_with_buildtrunk: %define buildtrunk 1}
|
||||
%if %{buildtrunk}
|
||||
BuildRequires: autoconf automake
|
||||
%endif
|
||||
BuildRequires: mozilla-nss mozilla-nss-devel
|
||||
%if 0%{?buildib} == 1
|
||||
BuildRequires: libibverbs-devel librdmacm-devel
|
||||
%endif
|
||||
BuildRequires: pkg-config
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
|
||||
%build
|
||||
%if %{buildtrunk}
|
||||
./autogen.sh
|
||||
%endif
|
||||
%if 0%{?buildib} == 1
|
||||
export ibverbs_CFLAGS=-I/usr/include/infiniband \
|
||||
export ibverbs_LIBS=-libverbs \
|
||||
export rdmacm_CFLAGS=-I/usr/include/rdma \
|
||||
export rdmacm_LIBS=-lrdmacm \
|
||||
%{configure} \
|
||||
--enable-nss \
|
||||
--enable-rdma
|
||||
%else
|
||||
%{configure} \
|
||||
--enable-nss
|
||||
%endif
|
||||
make %{_smp_mflags}
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
# removed to discourage use of init.d/corosync (openais should be
|
||||
# used instead)
|
||||
#%if 0%{?suse_version}
|
||||
#ln -sf ../../etc/init.d/corosync %{buildroot}%{_sbindir}/rccorosync
|
||||
#%endif
|
||||
rm -f %{buildroot}%{_initrddir}/corosync
|
||||
## tree fixup
|
||||
# drop static libs
|
||||
rm -f %{buildroot}%{_libdir}/*.a
|
||||
# drop docs and html docs for now
|
||||
rm -rf %{buildroot}%{_docdir}/*
|
||||
# the docdir is /usr/share/doc/<pkg> in the configuration
|
||||
rm -rf %{buildroot}%{_datadir}/doc/*
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%description
|
||||
This package contains the Corosync Cluster Engine Executive, several
|
||||
default APIs and libraries, default configuration files, and an init
|
||||
script.
|
||||
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE SECURITY
|
||||
%{_sbindir}/corosync
|
||||
%{_sbindir}/corosync-keygen
|
||||
%{_sbindir}/corosync-objctl
|
||||
%{_sbindir}/corosync-cfgtool
|
||||
%{_sbindir}/corosync-fplay
|
||||
%{_sbindir}/corosync-pload
|
||||
%{_sbindir}/corosync-cpgtool
|
||||
%{_sbindir}/corosync-quorumtool
|
||||
%dir %{_sysconfdir}/corosync
|
||||
%dir %{_sysconfdir}/corosync/uidgid.d
|
||||
%dir %{_sysconfdir}/corosync/service.d
|
||||
%config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example
|
||||
%dir %{_libexecdir}/lcrso
|
||||
%{_libexecdir}/lcrso/coroparse.lcrso
|
||||
%{_libexecdir}/lcrso/objdb.lcrso
|
||||
%{_libexecdir}/lcrso/service_cfg.lcrso
|
||||
%{_libexecdir}/lcrso/service_cpg.lcrso
|
||||
%{_libexecdir}/lcrso/service_evs.lcrso
|
||||
%{_libexecdir}/lcrso/service_confdb.lcrso
|
||||
%{_libexecdir}/lcrso/service_pload.lcrso
|
||||
%{_libexecdir}/lcrso/quorum_votequorum.lcrso
|
||||
%{_libexecdir}/lcrso/quorum_testquorum.lcrso
|
||||
%{_libexecdir}/lcrso/vsf_quorum.lcrso
|
||||
%{_libexecdir}/lcrso/vsf_ykd.lcrso
|
||||
%dir %{_localstatedir}/lib/corosync
|
||||
%{_mandir}/man8/corosync_overview.8*
|
||||
%{_mandir}/man8/corosync-objctl.8*
|
||||
%{_mandir}/man5/corosync.conf.5*
|
||||
|
||||
%package -n libcorosync4
|
||||
License: BSD3c
|
||||
Summary: The Corosync Cluster Engine Libraries
|
||||
Group: System Environment/Libraries
|
||||
Conflicts: corosync < 0.92-7
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description -n libcorosync4
|
||||
This package contains corosync libraries.
|
||||
|
||||
|
||||
|
||||
%files -n libcorosync4
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE
|
||||
%{_libdir}/libcfg.so.*
|
||||
%{_libdir}/libcpg.so.*
|
||||
%{_libdir}/libconfdb.so.*
|
||||
%{_libdir}/libevs.so.*
|
||||
%{_libdir}/libtotem_pg.so.*
|
||||
%{_libdir}/liblogsys.so.*
|
||||
%{_libdir}/libcoroipcc.so.*
|
||||
%{_libdir}/libcoroipcs.so.*
|
||||
%{_libdir}/libquorum.so.*
|
||||
%{_libdir}/libvotequorum.so.*
|
||||
%{_libdir}/libpload.so.*
|
||||
%{_libdir}/libsam.so.*
|
||||
|
||||
%post -n libcorosync4 -p /sbin/ldconfig
|
||||
|
||||
%postun -n libcorosync4 -p /sbin/ldconfig
|
||||
|
||||
%package -n libcorosync-devel
|
||||
License: BSD3c
|
||||
Summary: The Corosync Cluster Engine Development Kit
|
||||
Group: Development/Libraries
|
||||
Requires: libcorosync4 = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libcorosync-devel
|
||||
This package contains include files and man pages used to develop using
|
||||
The Corosync Cluster Engine APIs.
|
||||
|
||||
|
||||
|
||||
%files -n libcorosync-devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE README.devmap
|
||||
%dir %{_includedir}/corosync/
|
||||
%{_includedir}/corosync/cs_config.h
|
||||
%{_includedir}/corosync/corodefs.h
|
||||
%{_includedir}/corosync/coroipc_types.h
|
||||
%{_includedir}/corosync/coroipcs.h
|
||||
%{_includedir}/corosync/coroipcc.h
|
||||
%{_includedir}/corosync/cfg.h
|
||||
%{_includedir}/corosync/confdb.h
|
||||
%{_includedir}/corosync/corotypes.h
|
||||
%{_includedir}/corosync/cpg.h
|
||||
%{_includedir}/corosync/evs.h
|
||||
%{_includedir}/corosync/hdb.h
|
||||
%{_includedir}/corosync/list.h
|
||||
%{_includedir}/corosync/mar_gen.h
|
||||
%{_includedir}/corosync/sam.h
|
||||
%{_includedir}/corosync/swab.h
|
||||
%{_includedir}/corosync/quorum.h
|
||||
%{_includedir}/corosync/votequorum.h
|
||||
%dir %{_includedir}/corosync/totem/
|
||||
%{_includedir}/corosync/totem/coropoll.h
|
||||
%{_includedir}/corosync/totem/totem.h
|
||||
%{_includedir}/corosync/totem/totemip.h
|
||||
%{_includedir}/corosync/totem/totempg.h
|
||||
%dir %{_includedir}/corosync/lcr/
|
||||
%{_includedir}/corosync/lcr/lcr_ckpt.h
|
||||
%{_includedir}/corosync/lcr/lcr_comp.h
|
||||
%{_includedir}/corosync/lcr/lcr_ifact.h
|
||||
%dir %{_includedir}/corosync/engine
|
||||
%{_includedir}/corosync/engine/config.h
|
||||
%{_includedir}/corosync/engine/coroapi.h
|
||||
%{_includedir}/corosync/engine/logsys.h
|
||||
%{_includedir}/corosync/engine/objdb.h
|
||||
%{_includedir}/corosync/engine/quorum.h
|
||||
%{_libdir}/libcfg.so
|
||||
%{_libdir}/libcpg.so
|
||||
%{_libdir}/libconfdb.so
|
||||
%{_libdir}/libevs.so
|
||||
%{_libdir}/libtotem_pg.so
|
||||
%{_libdir}/liblogsys.so
|
||||
%{_libdir}/libcoroipcc.so
|
||||
%{_libdir}/libcoroipcs.so
|
||||
%{_libdir}/libquorum.so
|
||||
%{_libdir}/libvotequorum.so
|
||||
%{_libdir}/libpload.so
|
||||
%{_libdir}/libsam.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_mandir}/man3/cpg_*3*
|
||||
%{_mandir}/man3/evs_*3*
|
||||
%{_mandir}/man3/confdb_*3*
|
||||
%{_mandir}/man3/votequorum_*3*
|
||||
%{_mandir}/man3/sam_*3*
|
||||
%{_mandir}/man8/cpg_overview.8*
|
||||
%{_mandir}/man8/evs_overview.8*
|
||||
%{_mandir}/man8/confdb_overview.8*
|
||||
%{_mandir}/man8/logsys_overview.8*
|
||||
%{_mandir}/man8/votequorum_overview.8*
|
||||
%{_mandir}/man8/coroipc_overview.8*
|
||||
%{_mandir}/man8/sam_overview.8*
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user