From 54869ed28e739469f840549703df42419ade70370a52991feef8e6fef02bca63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 17 Feb 2025 08:20:24 +0100 Subject: [PATCH] Sync from SUSE:SLFO:Main pacemaker revision fe87288bc085c61770ecb639cbafcb64 --- _service | 6 +- _servicedata | 2 +- bug-806256_pacemaker-log-level-notice.patch | 30 +- ...ker-fencing-device-register-messages.patch | 18 +- ...cemaker-cts-restart-systemd-journald.patch | 12 +- pacemaker-2.1.9+20241107.c3b66b02d0.tar.xz | 3 - pacemaker-3.0.0+20250128.fa492f5181.tar.xz | 3 + pacemaker-nagios-plugin-dir.patch | 19 - pacemaker.changes | 369 ++++++++++++++++++ pacemaker.spec | 95 ++--- 10 files changed, 446 insertions(+), 111 deletions(-) delete mode 100644 pacemaker-2.1.9+20241107.c3b66b02d0.tar.xz create mode 100644 pacemaker-3.0.0+20250128.fa492f5181.tar.xz delete mode 100644 pacemaker-nagios-plugin-dir.patch diff --git a/_service b/_service index 0e81123..7d7d1a9 100644 --- a/_service +++ b/_service @@ -8,10 +8,10 @@ To update to a new release, change "revision" to the desired git commit hash and bump "version" if necessary - 2.1.9 + 3.0.0 --> - 2.1.9+%cd.%h - c3b66b02d0 + 3.0.0+%cd.%h + fa492f5181 enable diff --git a/_servicedata b/_servicedata index 1e429d2..381e380 100644 --- a/_servicedata +++ b/_servicedata @@ -5,4 +5,4 @@ https://github.com/ClusterLabs/pacemaker.git - 7f74c53091a946941e5c4ac4d39516454fb4f0c3 \ No newline at end of file + dc802bfe4bebd89448b53e42dcc5d022905a4215 \ No newline at end of file diff --git a/bug-806256_pacemaker-log-level-notice.patch b/bug-806256_pacemaker-log-level-notice.patch index 8ae4ce1..8c65862 100644 --- a/bug-806256_pacemaker-log-level-notice.patch +++ b/bug-806256_pacemaker-log-level-notice.patch @@ -4,24 +4,24 @@ Date: Thu Mar 14 09:41:53 2013 +0800 Log: Change some messages to notice level (bnc#806256) -Index: pacemaker-2.1.7+20240118.9ae4bea49/daemons/controld/controld_membership.c +Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_membership.c =================================================================== ---- pacemaker-2.1.7+20240118.9ae4bea49.orig/daemons/controld/controld_membership.c -+++ pacemaker-2.1.7+20240118.9ae4bea49/daemons/controld/controld_membership.c -@@ -432,7 +432,7 @@ crm_update_quorum(gboolean quorum, gbool +--- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/controld/controld_membership.c ++++ pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_membership.c +@@ -431,7 +431,7 @@ crm_update_quorum(gboolean quorum, gbool crm_xml_add_int(update, PCMK_XA_HAVE_QUORUM, quorum); crm_xml_add(update, PCMK_XA_DC_UUID, controld_globals.our_uuid); - crm_debug("Updating quorum status to %s", pcmk__btoa(quorum)); + crm_notice("Updating quorum status to %s", pcmk__btoa(quorum)); - controld_update_cib(PCMK_XE_CIB, update, cib_scope_local, + controld_update_cib(PCMK_XE_CIB, update, cib_none, cib_quorum_update_complete); - free_xml(update); -Index: pacemaker-2.1.7+20240118.9ae4bea49/daemons/controld/controld_transition.c + pcmk__xml_free(update); +Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_transition.c =================================================================== ---- pacemaker-2.1.7+20240118.9ae4bea49.orig/daemons/controld/controld_transition.c -+++ pacemaker-2.1.7+20240118.9ae4bea49/daemons/controld/controld_transition.c -@@ -167,7 +167,7 @@ do_te_invoke(long long action, +--- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/controld/controld_transition.c ++++ pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_transition.c +@@ -168,7 +168,7 @@ do_te_invoke(long long action, CRM_CHECK(controld_globals.transition_graph != NULL, controld_globals.transition_graph = create_blank_graph(); return); @@ -30,16 +30,16 @@ Index: pacemaker-2.1.7+20240118.9ae4bea49/daemons/controld/controld_transition.c controld_globals.transition_graph->id, ref, graph_input); te_reset_job_counts(); -Index: pacemaker-2.1.7+20240118.9ae4bea49/daemons/fenced/fenced_remote.c +Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_remote.c =================================================================== ---- pacemaker-2.1.7+20240118.9ae4bea49.orig/daemons/fenced/fenced_remote.c -+++ pacemaker-2.1.7+20240118.9ae4bea49/daemons/fenced/fenced_remote.c -@@ -695,7 +695,7 @@ remote_op_timeout_one(gpointer userdata) +--- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/fenced/fenced_remote.c ++++ pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_remote.c +@@ -699,7 +699,7 @@ remote_op_timeout_one(gpointer userdata) static void finalize_timed_out_op(remote_fencing_op_t *op, const char *reason) { - crm_debug("Action '%s' targeting %s for client %s timed out " + crm_notice("Action '%s' targeting %s for client %s timed out " - CRM_XS " id=%.8s", + QB_XS " id=%.8s", op->action, op->target, op->client_name, op->id); diff --git a/bug-812269_pacemaker-fencing-device-register-messages.patch b/bug-812269_pacemaker-fencing-device-register-messages.patch index 71550bb..25ba1ca 100644 --- a/bug-812269_pacemaker-fencing-device-register-messages.patch +++ b/bug-812269_pacemaker-fencing-device-register-messages.patch @@ -4,11 +4,11 @@ Date: Thu Apr 18 16:00:02 2013 +0800 Log: fencing: Drop the severity of the messages on registering a stonith device -Index: pacemaker-2.1.6+20231030.66cc0f083/daemons/fenced/fenced_commands.c +Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_commands.c =================================================================== ---- pacemaker-2.1.6+20231030.66cc0f083.orig/daemons/fenced/fenced_commands.c -+++ pacemaker-2.1.6+20231030.66cc0f083/daemons/fenced/fenced_commands.c -@@ -1465,7 +1465,7 @@ stonith_device_register(xmlNode *dev, gb +--- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/fenced/fenced_commands.c ++++ pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_commands.c +@@ -1410,7 +1410,7 @@ stonith_device_register(xmlNode *dev, gb g_hash_table_replace(device_list, device->id, device); ndevices = g_hash_table_size(device_list); @@ -17,16 +17,16 @@ Index: pacemaker-2.1.6+20231030.66cc0f083/daemons/fenced/fenced_commands.c device->id, ndevices, pcmk__plural_s(ndevices)); } -Index: pacemaker-2.1.6+20231030.66cc0f083/daemons/fenced/fenced_cib.c +Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_cib.c =================================================================== ---- pacemaker-2.1.6+20231030.66cc0f083.orig/daemons/fenced/fenced_cib.c -+++ pacemaker-2.1.6+20231030.66cc0f083/daemons/fenced/fenced_cib.c -@@ -618,7 +618,7 @@ update_cib_cache_cb(const char *event, x +--- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/fenced/fenced_cib.c ++++ pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_cib.c +@@ -496,7 +496,7 @@ update_cib_cache_cb(const char *event, x break; case -pcmk_err_diff_resync: case -pcmk_err_diff_failed: - crm_notice("[%s] Patch aborted: %s (%d)", event, pcmk_strerror(rc), rc); + crm_info("[%s] Patch aborted: %s (%d)", event, pcmk_strerror(rc), rc); - free_xml(local_cib); + pcmk__xml_free(local_cib); local_cib = NULL; break; diff --git a/bug-995365_pacemaker-cts-restart-systemd-journald.patch b/bug-995365_pacemaker-cts-restart-systemd-journald.patch index 5dd5e78..8010ac6 100644 --- a/bug-995365_pacemaker-cts-restart-systemd-journald.patch +++ b/bug-995365_pacemaker-cts-restart-systemd-journald.patch @@ -1,8 +1,8 @@ -Index: pacemaker-2.1.6+20231030.66cc0f083/python/pacemaker/_cts/audits.py +Index: pacemaker-2.1.9+20241118.394d77ec98/python/pacemaker/_cts/audits.py =================================================================== ---- pacemaker-2.1.6+20231030.66cc0f083.orig/python/pacemaker/_cts/audits.py -+++ pacemaker-2.1.6+20231030.66cc0f083/python/pacemaker/_cts/audits.py -@@ -80,13 +80,9 @@ class LogAudit(ClusterAudit): +--- pacemaker-2.1.9+20241118.394d77ec98.orig/python/pacemaker/_cts/audits.py ++++ pacemaker-2.1.9+20241118.394d77ec98/python/pacemaker/_cts/audits.py +@@ -82,13 +82,9 @@ class LogAudit(ClusterAudit): for node in nodes: if self._cm.env["have_systemd"]: @@ -16,5 +16,5 @@ Index: pacemaker-2.1.6+20231030.66cc0f083/python/pacemaker/_cts/audits.py - self._cm.log("ERROR: Cannot start 'systemd-journald' on %s" % node) + self._cm.log("ERROR: Cannot restart 'systemd-journald' on %s" % node) - (rc, _) = self._cm.rsh(node, "service %s restart" % self._cm.env["syslogd"]) - if rc != 0: + if "syslogd" in self._cm.env: + (rc, _) = self._cm.rsh(node, "service %s restart" % self._cm.env["syslogd"]) diff --git a/pacemaker-2.1.9+20241107.c3b66b02d0.tar.xz b/pacemaker-2.1.9+20241107.c3b66b02d0.tar.xz deleted file mode 100644 index 4808174..0000000 --- a/pacemaker-2.1.9+20241107.c3b66b02d0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5beb77541baeee437d36e745e889f34ffef7d6e567113b72079f3356a208a47 -size 4394804 diff --git a/pacemaker-3.0.0+20250128.fa492f5181.tar.xz b/pacemaker-3.0.0+20250128.fa492f5181.tar.xz new file mode 100644 index 0000000..e4b6c32 --- /dev/null +++ b/pacemaker-3.0.0+20250128.fa492f5181.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eef5d8bb8cd2a29eea4b7a9f0cb6eb7105b6c9f38f2f6849dbd2a2fb39632d7 +size 5353856 diff --git a/pacemaker-nagios-plugin-dir.patch b/pacemaker-nagios-plugin-dir.patch deleted file mode 100644 index fecadb8..0000000 --- a/pacemaker-nagios-plugin-dir.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit f813880dd1b6d1614393128a7f5f745437bea121 -Author: Gao,Yan -Date: Wed Mar 27 22:03:56 2013 +0800 - - Build: lrmd: Change the default directory for nagios plugins - -Index: pacemaker-2.1.4+20220720.3b57f9b58/configure.ac -=================================================================== ---- pacemaker-2.1.4+20220720.3b57f9b58.orig/configure.ac -+++ pacemaker-2.1.4+20220720.3b57f9b58/configure.ac -@@ -1523,7 +1523,7 @@ AC_DEFINE_UNQUOTED([SUPPORT_NAGIOS], [$w - AM_CONDITIONAL([BUILD_NAGIOS], [test $with_nagios -eq $REQUIRED]) - - AS_IF([test x"$NAGIOS_PLUGIN_DIR" = x""], -- [NAGIOS_PLUGIN_DIR="${libexecdir}/nagios/plugins"]) -+ [NAGIOS_PLUGIN_DIR="${prefix}/lib/nagios/plugins"]) - - AC_DEFINE_UNQUOTED(NAGIOS_PLUGIN_DIR, "$NAGIOS_PLUGIN_DIR", Directory for nagios plugins) - AC_SUBST(NAGIOS_PLUGIN_DIR) diff --git a/pacemaker.changes b/pacemaker.changes index ea402ba..60256c6 100644 --- a/pacemaker.changes +++ b/pacemaker.changes @@ -1,3 +1,372 @@ +------------------------------------------------------------------- +Mon Feb 03 10:44:36 UTC 2025 - Yan Gao + +- Update to version 3.0.0+20250128.fa492f5181: +- libraries: Update version numbers in so names + +------------------------------------------------------------------- +Thu Jan 09 12:12:10 UTC 2025 - Yan Gao + +- Update to version 3.0.0+20250108.d8340737c4 (Pacemaker-3.0.0): +- Build: raise minimum GnuTLS dependency to 3.4.6 + +------------------------------------------------------------------- +Wed Dec 25 09:59:10 UTC 2024 - Yan Gao + +- Update to version 2.1.9+20241223.2587987be9 (Pacemaker-3.0.0-rc3): +- agents: Replace the egrep command with the EGREP definition in ping RA +- libcrmcluster: fix format typos +- doc: drop Inkscape dependency +- tools: validate stonith_admin --timeout value +- libpacemaker: set fail-count to INFINITY for fatal failures (gh#ClusterLabs/pacemaker#3771) +- libpacemaker: add PCMK__XA_FAILED_START_OFFSET and PCMK__XA_FAILED_STOP_OFFSET (gh#ClusterLabs/pacemaker#3771) +- OCF: controld.in: Remove gfs_controld command as it's already obsoleted (gh#ClusterLabs/pacemaker#3767) + +------------------------------------------------------------------- +Thu Dec 12 10:21:23 UTC 2024 - Yan Gao + +- Update to version 2.1.9+20241211.4ae3a303e5 (Pacemaker-3.0.0-rc2): +- sysconfig: Document using certificates for remote nodes. +- sysconfig: Explain permissions needed on TLS-related files. +- liblrmd: Enable TLS support for Pacemaker Remote clients. +- daemons: Enable TLS support for Pacemaker Remote nodes. +- libcrmcommon: Set *tls = NULL in a few more locations. +- xml: Warn about post-transform behavior changes for ACLs with xpath +- libcrmcluster: restore CPG header size compatibility +- libcrmcluster: improve messages in pcmk__cpg_message_data() +- libcrmcluster: don't assert for CPG decompression error +- libcrmcluster: avoid redundant log for invalid CPG messages +- libcrmcluster: initialize from in pcmk__cpg_message_data() +- scheduler: avoid memory leak in bundles +- libcib: Enable TLS certs for remote CIB operations. +- libs: Log if a TLS certificate is close to expiration. +- libcrmcommon: If the server supports certs, require them... +- daemons: Set up X509 auth in based if enabled. +- sysconfig: Add env settings needed for X509 authentication. +- xml: Preserve ACL reference behavior for replaced constraints +- xml: Ensure ACL permissions are valid after XSL transformations +- xml: Warn if schema transformation drops remove-after-stop property +- xml: Warn if schema transformation drops moon phase +- xml: Info if schema transformation drops empty groups or clones +- xml: Warn if schema transformation drops colocation/order lifetimes +- xml: Warn if schema transformation drops can_fail or... +- xml: Warn if schema transformation drops restart-type meta-attr +- xml: Warn if schema transformation drops rkt bundles +- xml: Warn if schema transformation drops nagios/upstart resources +- log: Allow CIB upgrade messages to start with W, I, D +- various: clean up library memory at child exit +- pacemaker-remoted: improve exit codes for schema failures +- controller: avoid memory leak when updating join phase +- scheduler: avoid memory leak when freeing node copies + +------------------------------------------------------------------- +Fri Dec 06 11:41:46 UTC 2024 - Yan Gao + +- Update to version 2.1.9+20241118.394d77ec98 (Pacemaker-3.0.0-rc1): +- NLS: update translations before 3.0.0-rc1 +- libstonithd: drop unknown agent message +- controller: downgrade "Not registering" message +- tools: improve crm_mon "Retrying" message +- libcrmcluster: improve XML ID logs in pcmk__get_node() +- scheduler,libcrmservice,tools: compare resource IDs case-sensitively +- python: Always use generated corosync config in regression tests +- tools: crm_resource --restart works with master resources +- tools: crm_resource --set-parameter works with master resources +- tools: crm_resource --delete-parameter --element works with master +- libcrmcommon: allow NULL unpack_data in pcmk__cmp_nvpair_blocks() +- libcrmcommon: ignore NULL first ID in pcmk__cmp_nvpair_blocks() +- libcrmcommon: bump feature set to 3.20.0 +- rpm: drop no-longer-needed support tests from spec file +- liblrmd: Perform the API handshake asynchronously. +- libcrmcommon: always respect overwrite in pcmk__cmp_nvpair_blocks() +- executor: avoid use-after-free upon shutdown (gh#ClusterLabs/pacemaker#3718) +- Change +- tools: Drop crm_resource --set-property option +- tools: Drop crm_resource --get-property option +- tools: Drop deprecated crm_resource --xml-file option +- daemons: execd should read remote client messages async. +- CIB: deprecate record-pending operation option +- tools: restore crmadmin default timeout to 30 seconds +- libcrmcommon: any negative interval is an error +- agents: always allow attribute agent to show metadata +- agents: use RESOURCENAME in attribute agent metadata +- agents: use configured run directory in attribute agent +- controld: leave xml-src attribute empty when no DC selected #2902 +- schemas: Disallow fencing-level index greater than 9 +- various: Drop support for phase of the moon in rule date_spec +- schemas: nvpair value should not be optional +- tools: Define behavior of attrd_updater -Q without -N +- tools: crm_resource returns error on failed schema upgrade +- libpe_status: Drop support for role_after_failure op meta-attr +- libpacemaker: Drop support for can_fail op meta-attribute +- various: Drop support for restart-type resource meta-attribute +- schemas: Disallow phase of the moon in rule date_spec +- libcib: Perform server-side remote CIB reads asynchronously. +- pacemakerd: combine subdaemon start-up logs +- libcrmcommon: avoid potential overflow when adding seconds +- libcib: Perform client-side remote CIB reads asynchronously. +- schemas: Disallow role_after_failure resource meta-attribute +- schemas: Disallow can_fail operation meta-attribute +- schemas: Disallow restart-type resource meta-attribute +- libcrmcommon: Don't assert on failure to write errors. +- CIB: ignore node expressions for meta-attributes +- libpacemaker: don't pass node attributes with fence actions +- libcrmcommon: Ignore crmd-transition-delay property +- libcrmcommon: Ignore crmd-finalization-timeout property +- libcrmcommon: Ignore crmd-integration-timeout property +- various: Ignore stonith-action=poweroff property +- various: Ignore remove-after-stop property +- all: use consistent capitalization in execution status strings +- tools: crm_shadow --reset now requires --force +- scheduler: ignore unknown actions for resource state +- libcrmcommon: bounds-check when adding to years +- controller: avoid overflow in recheck time +- libcrmservice: accept no more than around 10MiB stdout/stderr +- schemas: Disallow crmd-transition-delay property +- schemas: Disallow crmd-finalization-timeout property +- schemas: Disallow crmd-integration-timeout property +- schemas: Disallow stonith-action=poweroff property +- schemas: Disallow remove-after-stop cluster property +- libpe_status: Drop support for ping nodes +- schemas: Disallow ping nodes +- scheduler: Fixed memory leak when searching for unfencing devices. +- CIB: drop support for unset or unknown validate-with +- pacemaker-based,libcib: warn for invalid call options +- controller,liblrmd: warn for invalid remote proxy IPC flags +- fencer: warn for invalid call options +- fencer: warn if device support flags invalid +- libcrmservice: use proper types with write() +- libcrmcommon,libcib,scheduler: use unsigned int for CIB sequence number +- scheduler: avoid overflow in utilization values +- CIB: drop support for rkt bundles +- CIB: drop support for nagios-class resources +- CIB: drop support for Upstart +- libcrmcommon: handle corner cases better in crm_time_add_days() +- libcrmcommon: handle too-negative components of ISO8601 durations +- various: Drop support for masters attribute in bundles +- various: Drop support for master resources +- schemas: Disallow rkt bundles +- schemas: Disallow nagios-class resources +- schemas: Disallow upstart-class resources +- cts, xml: New upgrade-3.10-4.xsl XSLT stylesheet +- controller: avoid memory leak on scheduler API error +- libcib: treat empty variant variables same as unset +- pacemaker-based: reject remote users if PAM not available +- pacemaker-based: compare remote user names case-sensitively +- pacemaker-based: improve remote client connection messages +- lrmd: Report the result of add_tls_to_mainloop... +- cts-lab: Allow running multiple tests with the --choose argument. +- CIB: do not recover from XML syntax errors +- libcrmcommon: do not return partially parsed XML +- CIB: ignore colocation constraints with invalid scores +- CIB: ignore location constraints if score attribute is unset or invalid +- CIB: ignore location constraints with invalid scores +- scheduler: warn for invalid promotion scores +- scheduler: warn if node score is invalid +- scheduler: warn if nvpair block score is invalid +- various: Drop support for lifetime elements in constraints +- scheduler: warn for invalid fail counts +- CIB: treat negative migration-threshold as invalid and use default +- scheduler: warn if resource stickiness is invalid +- scheduler: warn if resource priority is invalid +- scheduler: ignore and warn for invalid node health attributes +- scheduler: warn for invalid health cluster option values +- controller: improve stonith-max-attempts logs +- pacemaker-attrd: use pcmk_parse_score() in attrd_expand_value() +- schemas: Disallow masters attribute in bundle containers +- schemas: Disallow master resources +- all: improve messages when parsing long integers +- pacemaker-based: log cluster-ipc-limit errors +- libcrmcommon: improve IPC buffer size messages +- libcrmcommon: Drop xmlRegisterNodeDefault() +- libcrmcommon: NULL-check pcmk__xml_tree_foreach() argument +- libpe_rules: Drop support for multiple top-level location rules +- schemas: Disallow lifetime elements in constraints +- cts, xml: New upgrade-3.10-3.xsl XSLT stylesheet +- libcrmcommon: tweak parse_date() validations +- pacemakerd: fix Corosync support check +- libcrmcommon: handle out-of-range better when parsing integers +- CIB: globally-unique defaults to true if clone-node-max > 1 +- fencing: default pcmk_host_argument to "none" if "port" not advertised +- CIB: deprecate concurrent-fencing cluster property +- configure: deprecate --with-concurrent-fencing-default and default it to true +- scheduler: best practices for get_rsc_attributes() +- schemas: Disallow multiple top-level location rules +- scheduler: ignore instance attributes in rsc_defaults +- CTS: Fix cts-lab --list. +- xml: Drop duplicate nvpairs within a given nvset +- cts, xml: New upgrade-3.10-2.xsl XSLT stylesheet +- libpe_rules: Drop support for name with id-ref attribute +- tools: improve crm_verify error messages +- alerts: don't send deprecated alert environment variables +- fencer: rename -c/--stand-alone-w-cpg option +- fencer: drop support for non-clustered mode in fencer +- libcrmcommon: add pcmk_cib_node_shutdown() +- libcrmcommon: bounds-check seconds in pcmk_parse_interval_spec() +- libcrmcommon: return int from get_ordinal_days() +- libcrmcommon: use uint32_t in parse_date() +- libcib: improve error handling in cib_file_new() +- tools: update terminology in no-quorum-policy status output +- CIB: allow no-quorum-policy "fence" and deprecate "suicide" +- fencer: update terminology in trace message +- scheduler: create local node after unpacking everything +- libcrmcommon: log panic reason instead of caller name +- libcrmcommon: don't treat tracing differently for panics +- sysconfig: improve PCMK_panic_action description +- libcrmcommon: preserve api dispatch in connect_and_send_attrd_request() +- libcrmcommon: Detect newly created alerts section +- schemas: Disallow nvpairs without value attributes +- xml: Sort nvset elements by score within a given parent +- xml: Bump validate-with cib attribute in 3.10 XSL transformation +- cts, xml: New upgrade-3.10-1.xsl XSLT stylesheet +- schemas: Disallow nvpair name with id-ref attribute +- lrmd: Perform the TLS handshake asynchronously. +- lrmd: Report connection failures in tls_handshake_failed. +- tools: handle orphans when outputting node history in crm_mon +- libpe_status: Drop support for nodes with invalid type +- CIB: always compare validate-with schema names case-sensitively +- CIB: drop support for rsc-instance, with-rsc-instance, first-instance, and then-instance +- CIB: drop support for validate-with="pacemaker-next" +- CIB: drop support for pacemaker-0.6, pacemaker-0.7, pacemaker-1.1, and transitional-0.6 schemas +- libpe_status: Drop support for multiple top-level nvset rules +- libpe_status: Don't look for value in nvpair with id-ref +- libpe_status: Ignore nvpair with invalid id-ref +- xml: Allow previously disallowed primitive meta-attributes +- xml: Allow previously disallowed "required" op meta-attribute +- xml: Allow previously disallowed cluster properties +- xml: New upgrade-3.10-0.xsl XSLT stylesheet +- Pacemaker Remote: drop "short fuse" shutdown timer +- scheduler: ignore ticket constraints with invalid roles +- scheduler: ignore colocation constraints with invalid roles +- scheduler: ignore invalid location constraints +- libcrmcommon: compare empty strings correctly in attribute expressions +- sysconfig: interpret PCMK_panic_action more strictly +- rpm: Require python3-psutil for running tests. +- tools: fix crm_rule man page section division +- schemas: Add additional node types to the crmadmin schema. +- controller: drop controld_globals.our_nodename +- tools: return more specific error code for crm_shadow file errors +- scheduler: ignore groups with no members +- scheduler: ignore malformed resource history entries +- tools: drop --text-fancy command-line option +- scheduler: correct format arguments +- CIB: treat misconfigured rule as not passing +- CIB: treat misconfigured operation expression as not passing +- CIB: treat misconfigured resource expression as not passing +- CIB: treat misconfigured attribute expression as not passing +- CIB: treat misconfigured date expression as not passing +- CIB: treat misconfigured duration as not passing +- CIB: treat misconfigured date specification as not passing +- pacemaker-based: client name can be NULL +- various: ensure there are spaces around QB_XS +- controller,libpacemaker: transition graph IDs should be positive +- libcrmcluster: use correct specifier for guint count +- controller: free cluster object at exit +- libcrmcluster: assert on election_init() errors +- tools: crm_ticket should return CRM_EX_UNSAFE with --force warning. +- lrmd: Remove support for undocumented key loading behavior. +- libcrmcluster: don't hardcode controller in vote messages +- libcrmcluster: set appropriate message type in election messages +- libcrmcommon: use proper message type for node purge requests +- libcrmcommon: specify "scheduler" as scheduler IPC message protocol +- libcrmcommon: specify "pacemakerd" as pacemakerd IPC message protocol +- controller: use pcmk__new_message() to create direct acks +- controller: use pcmk__new_reply() to create reprobe reply +- libpacemaker: Don't apply colocation twice for promotion priority +- libpacemaker: Apply promotion priority to cloned group instance +- libpe_status: Use first action meta-attr within nvset if duplicates +- libcib: Don't overwrite property values for CIB config hash +- various: Don't set cluster-layer node ID as XML ID +- tools: crm_node -i must initialize nodeid before passing pointer +- libpacemaker: Log correct score in pcmk__apply_coloc_to_priority() +- scheduler: store default fencing action timeout as guint +- crm_verify: Improve checking of fencing level IDs +- tools: Drop crm_mon --web-cgi option +- tools: Drop crm_mon --disable-ncurses option +- tools: Drop crm_mon --simple-status option +- tools: Drop crm_mon --as-html option +- sysconfig: drop support for PCMK_dh_min_bits environment variable +- dependencies: require GnuTLS 3.1.7 or later +- tools: CIB clients retry signon upon an EAGAIN error (gh#ClusterLabs/pacemaker#3546) +- libcib: new function cib__signon_attempts() (gh#ClusterLabs/pacemaker#3546) +- libcrmcluster: Ensure priv is non-NULL in crm_cluster_connect() (gh#ClusterLabs/pacemaker#3548) +- libcrmcluster: use local hostname for node name if not configured in corosync (gh#ClusterLabs/pacemaker#3547) +- tools: Don't double-free XML in crm_verify after schema update +- libcrmcommon: Use glib for calculating MD5 checksums. +- cts-cli: update expected output for crm_verify to distinguish configuration warnings and errors (gh#ClusterLabs/pacemaker#3538) +- tools: crm_verify distinguishes configuration warnings and errors (gh#ClusterLabs/pacemaker#3538) +- libcrmcommon: don't try to add to full string in pcmk__time_format_hr() +- libcrmcommon: handle formatting errors in pcmk__time_format_hr() +- libraries: ensure private headers follow usual header conventions +- libraries: ensure includes are outside extern in public headers +- scheduler: consider group locations when member is explicit colocation dependent +- scheduler: consolidate pcmk__apply_location() trace messages +- libcib: don't bother with pcmk__config_err() for live CIB +- scheduler: drop incorrect error logs in pcmk__colocation_affects() +- liblrmd,libstonithd: use standard default timeout (20s) for meta-data actions +- tools: Don't skip formatting if running crm_simulate interactively. +- tools: crm_resource rejects invalid timeouts +- tools: crm_resource --option throws usage error if appropriate +- tools: crm_resource --delete does not accept clone instances +- tools: crm_resource --delete exits with CRM_EX_USAGE without -t opt +- tools: crm_resource --delete now succeeds if resource doesn't exist +- libpacemaker: Include on_node in injected lrm_rsc_op entries +- daemons: Clean up memory when attrd exits. (gh#ClusterLabs/pacemaker#3507) +- libcrmcommon: reject ISO 8601 duration without any values +- libcrmcommon: bounds-check ISO 8601 duration elements +- scheduler: improve promotion score message for inactive instances +- scheduler: use -INFINITY promotion score for inactive instances +- scheduler: avoid core-dump on trace message +- pacemakerd: Drop {PCMK,HA}_shutdown_delay environment variable +- libcrmcommon: Drop {PCMK,HA}_cib_timeout environment variable +- libcrmcommon: Drop PCMK_mcp and HA_mcp environment variables +- fencer, libstonithd: Drop support for "action" fencing param +- tools: cibadmin --md5-sum-versioned no longer prints feature set +- libcrmcluster: Default remote_state_from_cib() to false +- libstonithd: prevent to free 'op_reply' repeatedly in 'stonith_send_command' +- tools: Deprecate cibadmin --local +- tools: Drop cibadmin --host option +- tools: Drop cibadmin --no-bcast option +- doc: Drop support for v1 cluster nodes with v3 remote nodes +- libpacemaker: correctly retrieve any existing fail-count for increment (gh#ClusterLabs/pacemaker#3510) +- build: Drop pacemaker_remoted link creation +- python: Support systems where rsyslog is not installed. +- libpacemaker: Add spaces back to attrd_updater query output. +- agents: drop ocf:pacemaker:o2cb resource agent +- rpm: rename --with-stonithd option to --with-linuxha +- configure: drop --legacy-links option +- configure: drop --enable-compat-2.0 option +- dependencies: require pkg-config 0.28 or later +- dependencies: require libxml2 2.9.2 or later +- dependencies: require libqb 1.0.1 or later +- dependencies: require libdbus 1.5.12 or later +- libcrmcommon,libpe_status: correct typos +- libcib,liblrmd: improve TLS handshake error messages +- attrd: Ensure set ID is non-empty +- libcrmcommon: Check scan_ll() return value in crm_get_msec() +- libstonithd: free escaped metadata descriptions with g_free() (gh#ClusterLabs/pacemaker#3492) +- liblrmd: make TLS handshake error handling consistent +- libcrmcommon: interpret pcmk__remote_ready() return code correctly +- pacemakerd: improve subdaemon check messages +- pacemaker-based: improve local notification messages +- scheduler: parenthesize arguments in action macros +- libcrmcommon: support PCMK_panic_action="off" or "sync-off" +- tools: cibadmin incorrect example for score update +- libstonithd: avoid use-after-free when retrieving metadata of Linux-HA fence agents (gh#ClusterLabs/pacemaker#3476) +- NLS: drop removed file from POTFILES +- libcrmcommon: avoid possible buffer overflow in pcmk__time_format_hr() +- libcrmcommon: avoid possible buffer overflow in parse_date() +- tools: Fix spacing in crm_resource help output +- includes: Bump CRM_FEATURE_SET for iso8601 formatted output. +- schemas: Add an XML schema for iso8601 output. +- tools: Convert iso8601 to formatted output. + +- Rebase: + * bug-806256_pacemaker-log-level-notice.patch + +- Drop obsolete: + * pacemaker-nagios-plugin-dir.patch + ------------------------------------------------------------------- Thu Nov 07 15:40:34 UTC 2024 - Yan Gao diff --git a/pacemaker.spec b/pacemaker.spec index 1dd65b5..06ae1c7 100644 --- a/pacemaker.spec +++ b/pacemaker.spec @@ -1,7 +1,7 @@ # # spec file for package pacemaker # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,8 +35,12 @@ # Define conditionals so that "rpmbuild --with " and # "rpmbuild --without " can enable and disable specific features -## Add option to enable support for stonith/external fencing agents -%bcond_without stonithd +## Add option for Linux-HA (stonith/external) fencing agent support +%if 0%{?suse_version} < 1600 +%bcond_without linuxha +%else +%bcond_with linuxha +%endif ## Add option to enable support for storing sensitive information outside CIB %bcond_without cibsecrets @@ -66,13 +70,6 @@ ## Add option to turn off hardening of libraries and daemon executables %bcond_with hardening -## Add option to disable links for legacy daemon names -%if 0%{?suse_version} < 1600 -%bcond_without legacy_links -%else -%bcond_with legacy_links -%endif - # Define globals for convenient use later %if 0%{?suse_version} >= 1560 || 0%{?sle_version} >= 150600 @@ -85,11 +82,6 @@ ## Distro-specific configuration choices -### Use 2.0-style output when other distro packages don't support current output -%if 0%{?suse_version} < 1600 -%global compat20 --enable-compat-2.0 -%endif - ### Default concurrent-fencing to true when distro prefers that %if 0%{?suse_version} >= 1540 || 0%{?sle_version} >= 150400 %global concurrent_fencing --with-concurrent-fencing-default=true @@ -129,7 +121,7 @@ %define with_regression_tests 0 Name: pacemaker -Version: 2.1.9+20241107.c3b66b02d0 +Version: 3.0.0+20250128.fa492f5181 Release: 0 Summary: Scalable High-Availability cluster resource manager # AGPL-3.0 licensed extra/clustermon.sh is not present in the binary @@ -141,14 +133,13 @@ Source1: crm_report.in Source100: pacemaker.rpmlintrc Patch1: bug-806256_pacemaker-log-level-notice.patch Patch2: bug-728579_pacemaker-stonith-dev-id.patch -Patch3: pacemaker-nagios-plugin-dir.patch -Patch4: bug-812269_pacemaker-fencing-device-register-messages.patch -Patch5: pacemaker-Wno-format-signedness.patch -Patch6: bug-943295_pacemaker-lrmd-log-notice.patch -Patch7: bug-977201_pacemaker-controld-self-fencing.patch -Patch8: bug-995365_pacemaker-cts-restart-systemd-journald.patch -Patch9: pacemaker-cts-StartCmd.patch -Patch10: bsc#1180966-0001-Log-pacemakerd-downgrade-the-warning-about-SBD_SYNC_.patch +Patch3: bug-812269_pacemaker-fencing-device-register-messages.patch +Patch4: pacemaker-Wno-format-signedness.patch +Patch5: bug-943295_pacemaker-lrmd-log-notice.patch +Patch6: bug-977201_pacemaker-controld-self-fencing.patch +Patch7: bug-995365_pacemaker-cts-restart-systemd-journald.patch +Patch8: pacemaker-cts-StartCmd.patch +Patch9: bsc#1180966-0001-Log-pacemakerd-downgrade-the-warning-about-SBD_SYNC_.patch # Required basic build tools BuildRequires: autoconf BuildRequires: automake @@ -162,8 +153,9 @@ BuildRequires: help2man BuildRequires: libtool BuildRequires: make BuildRequires: pam-devel -BuildRequires: pkgconfig +BuildRequires: pkgconfig >= 0.28 BuildRequires: python-rpm-macros +BuildRequires: python3-psutil BuildRequires: python3-setuptools # Required for agent_config.h which specifies the correct scratch directory BuildRequires: resource-agents @@ -172,13 +164,13 @@ BuildRequires: pkgconfig(bzip2) # Required for "make check" BuildRequires: pkgconfig(cmocka) >= 1.1.0 BuildRequires: pkgconfig(corosync) >= 2.0.0 -BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dbus-1) >= 1.5.12 # Required for core functionality BuildRequires: pkgconfig(glib-2.0) >= 2.42 -BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(gnutls) >= 3.4.6 # Pacemaker requires a minimum libqb functionality -BuildRequires: pkgconfig(libqb) >= 0.17.0 -BuildRequires: pkgconfig(libxml-2.0) >= 2.6.0 +BuildRequires: pkgconfig(libqb) >= 1.0.1 +BuildRequires: pkgconfig(libxml-2.0) >= 2.9.2 BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(ncurses) # Pacemaker requires a minimum Python functionality @@ -192,7 +184,9 @@ Requires: %{name}-cluster-libs = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: corosync >= 2.0.0 Requires: python3 +%if %{with linuxha} Requires: python3-%{name} = %{version}-%{release} +%endif Requires: resource-agents Recommends: crmsh Recommends: fence-agents @@ -211,7 +205,7 @@ BuildRequires: docbook-xsl-stylesheets %else BuildRequires: docbook-style-xsl %endif -%if %{with stonithd} +%if %{with linuxha} %if 0%{?suse_version} BuildRequires: cluster-glue-devel %else @@ -220,7 +214,6 @@ BuildRequires: cluster-glue-libs-devel %endif %if %{with doc} BuildRequires: asciidoc -BuildRequires: inkscape BuildRequires: python3-sphinx %endif %if %{with_regression_tests} @@ -328,12 +321,12 @@ Summary: Pacemaker development package Group: Development/Libraries/C and C++ Requires: %{name}-libs = %{version}-%{release} Requires: libtool-ltdl-devel -Requires: pkgconfig +Requires: pkgconfig >= 0.28 Requires: pkgconfig(bzip2) Requires: pkgconfig(corosync) >= 2.0.0 Requires: pkgconfig(glib-2.0) -Requires: pkgconfig(libqb) -Requires: pkgconfig(libxml-2.0) >= 2.6.0 +Requires: pkgconfig(libqb) >= 1.0.1 +Requires: pkgconfig(libxml-2.0) >= 2.9.2 Requires: pkgconfig(libxslt) Requires: pkgconfig(uuid) %if %{enable_cluster_libs_pkg} @@ -398,7 +391,7 @@ manager %build -export systemdsystemunitdir=%{?_unitdir}%{!?_unitdir:no} +export systemdsystemunitdir=%{_unitdir} %if %{with hardening} # prefer distro-provided hardening flags in case they are defined @@ -428,7 +421,6 @@ autoreconf -fvi %endif PYTHON=%{python_path} \ %{!?with_hardening: --disable-hardening} \ - %{?with_legacy_links: --enable-legacy-links} \ %{?with_profiling: --with-profiling} \ %{?with_cibsecrets: --with-cibsecrets} \ %{?with_nls: --enable-nls} \ @@ -438,7 +430,6 @@ autoreconf -fvi %{?ocf_root: --with-ocfdir=%{ocf_root}} \ %{?concurrent_fencing} \ %{?resource_stickiness} \ - %{?compat20} \ --disable-static \ --with-initdir=%{_initddir} \ --with-runstatedir=%{_rundir} \ @@ -584,14 +575,12 @@ fi %{_unitdir}/pacemaker.service %{_sbindir}/rcpacemaker -%exclude %{_libexecdir}/pacemaker/cts-log-watcher %exclude %{_libexecdir}/pacemaker/cts-support %exclude %{_sbindir}/pacemaker-remoted -%exclude %{_sbindir}/pacemaker_remoted %dir %{_libexecdir}/pacemaker %{_libexecdir}/pacemaker/* -%if %{with stonithd} +%if %{with linuxha} %{_sbindir}/fence_legacy %endif %{_sbindir}/fence_watchdog @@ -601,9 +590,8 @@ fi %{_mandir}/man7/pacemaker-schedulerd.7%{ext_man} %{_mandir}/man7/pacemaker-fenced.7%{ext_man} %{_mandir}/man7/ocf_pacemaker_controld.7%{ext_man} -%{_mandir}/man7/ocf_pacemaker_o2cb.7%{ext_man} %{_mandir}/man7/ocf_pacemaker_remote.7%{ext_man} -%if %{with stonithd} +%if %{with linuxha} %{_mandir}/man8/fence_legacy.8%{ext_man} %endif %{_mandir}/man8/fence_watchdog.8%{ext_man} @@ -613,12 +601,11 @@ fi #%license licenses/GPLv2 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine %{ocf_root}/resource.d/pacemaker/controld -%{ocf_root}/resource.d/pacemaker/o2cb %{ocf_root}/resource.d/pacemaker/remote %files cli @@ -654,10 +641,11 @@ fi %{_datadir}/pacemaker/report.collector %{_datadir}/pacemaker/report.common # XXX "dirname" is not owned by any prerequisite +%dir %{_datadir}/snmp +%dir %{_datadir}/snmp/mibs %{_datadir}/snmp/mibs/PCMK-MIB.txt %exclude %{ocf_root}/resource.d/pacemaker/controld -%exclude %{ocf_root}/resource.d/pacemaker/o2cb %exclude %{ocf_root}/resource.d/pacemaker/remote %dir %{ocf_root} @@ -672,7 +660,6 @@ fi %exclude %{_mandir}/man7/pacemaker-schedulerd.* %exclude %{_mandir}/man7/pacemaker-fenced.* %exclude %{_mandir}/man7/ocf_pacemaker_controld.* -%exclude %{_mandir}/man7/ocf_pacemaker_o2cb.* %exclude %{_mandir}/man7/ocf_pacemaker_remote.* %{_mandir}/man8/crm*.8%{ext_man} %{_mandir}/man8/attrd_updater.* @@ -685,7 +672,7 @@ fi #%license licenses/GPLv2 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/blackbox @@ -704,7 +691,7 @@ fi %{_libdir}/libstonithd.so.* #%license licenses/LGPLv2.1 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %if !%{enable_cluster_libs_pkg} %{_libdir}/libcrmcluster.so.* %endif @@ -714,7 +701,7 @@ fi %{_libdir}/libcrmcluster.so.* #%license licenses/LGPLv2.1 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %endif %files -n python3-%{name} @@ -723,18 +710,17 @@ fi %exclude %{python3_sitelib}/pacemaker/_cts/ #%license licenses/LGPLv2.1 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %files remote %{_unitdir}/pacemaker_remote.service %{_sbindir}/rcpacemaker_remote %{_sbindir}/pacemaker-remoted -%{_sbindir}/pacemaker_remoted %{_mandir}/man8/pacemaker-remoted.8%{ext_man} #%license licenses/GPLv2 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %if %{with doc} %files doc @@ -746,12 +732,11 @@ fi %{python3_sitelib}/pacemaker/_cts/ %{_datadir}/pacemaker/tests -%{_libexecdir}/pacemaker/cts-log-watcher %{_libexecdir}/pacemaker/cts-support #%license licenses/GPLv2 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %files devel %{_includedir}/pacemaker @@ -767,7 +752,7 @@ fi %{_libdir}/pkgconfig/*pacemaker*.pc #%license licenses/LGPLv2.1 %license COPYING -%doc ChangeLog +%doc ChangeLog.md %files schemas #%license licenses/GPLv2