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