3 Commits

Author SHA256 Message Date
a35011dcad Merge branch 'factory' into slfo-main 2025-10-30 19:02:39 +01:00
3bbbd3340c Revert "Sync changes to SLFO-1.2 branch"
This reverts commit 42e61c1b17.
2025-10-30 19:02:00 +01:00
42e61c1b17 Sync changes to SLFO-1.2 branch 2025-08-20 10:02:36 +02:00
11 changed files with 52 additions and 382 deletions

View File

@@ -11,7 +11,7 @@
<param name="version">3.0.1</param> <param name="version">3.0.1</param>
--> -->
<param name="versionformat">3.0.1+%cd.%h</param> <param name="versionformat">3.0.1+%cd.%h</param>
<param name="revision">f7f28ab32c</param> <param name="revision">Pacemaker-3.0.1</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>

View File

@@ -5,4 +5,4 @@
</service> </service>
<service name="tar_scm"> <service name="tar_scm">
<param name="url">https://github.com/ClusterLabs/pacemaker.git</param> <param name="url">https://github.com/ClusterLabs/pacemaker.git</param>
<param name="changesrevision">f7f28ab32caed4896337d47d26cdf1a306c00a32</param></service></servicedata> <param name="changesrevision">16e74fc4da93a08514e1ec320fa9530b6c3d9fd5</param></service></servicedata>

View File

@@ -4,11 +4,11 @@ Date: Thu Sep 6 15:14:58 2012 +0800
Medium: stonith: Expose IDs of stonith resources to stonith agents through "$CRM_meta_st_device_id" environment variable Medium: stonith: Expose IDs of stonith resources to stonith agents through "$CRM_meta_st_device_id" environment variable
Index: pacemaker-3.0.1+20251119.6fa73e16/daemons/fenced/fenced_commands.c Index: pacemaker-3.0.0+20250416.6085fd03bf/daemons/fenced/fenced_commands.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/daemons/fenced/fenced_commands.c --- pacemaker-3.0.0+20250416.6085fd03bf.orig/daemons/fenced/fenced_commands.c
+++ pacemaker-3.0.1+20251119.6fa73e16/daemons/fenced/fenced_commands.c +++ pacemaker-3.0.0+20250416.6085fd03bf/daemons/fenced/fenced_commands.c
@@ -1181,6 +1181,7 @@ build_device_from_xml(const xmlNode *dev @@ -1115,6 +1115,7 @@ build_device_from_xml(const xmlNode *dev
(const char *) device->on_target_actions->str); (const char *) device->on_target_actions->str);
} }
@@ -16,10 +16,10 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/daemons/fenced/fenced_commands.c
device->work = mainloop_add_trigger(G_PRIORITY_HIGH, stonith_device_dispatch, device); device->work = mainloop_add_trigger(G_PRIORITY_HIGH, stonith_device_dispatch, device);
return device; return device;
Index: pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c Index: pacemaker-3.0.0+20250416.6085fd03bf/lib/fencing/st_actions.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/lib/fencing/st_actions.c --- pacemaker-3.0.0+20250416.6085fd03bf.orig/lib/fencing/st_actions.c
+++ pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c +++ pacemaker-3.0.0+20250416.6085fd03bf/lib/fencing/st_actions.c
@@ -33,6 +33,7 @@ struct stonith_action_s { @@ -33,6 +33,7 @@ struct stonith_action_s {
char *agent; char *agent;
char *action; char *action;
@@ -28,7 +28,7 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c
int timeout; int timeout;
bool async; bool async;
void *userdata; void *userdata;
@@ -217,6 +218,7 @@ stonith__destroy_action(stonith_action_t @@ -215,6 +216,7 @@ stonith__destroy_action(stonith_action_t
services_action_free(action->svc_action); services_action_free(action->svc_action);
} }
pcmk__reset_result(&(action->result)); pcmk__reset_result(&(action->result));
@@ -36,15 +36,16 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c
free(action); free(action);
} }
} }
@@ -274,12 +276,19 @@ stonith__action_create(const char *agent @@ -272,6 +274,8 @@ stonith__action_create(const char *agent
if (device_args) { if (device_args) {
char *buffer = pcmk__assert_asprintf("pcmk_%s_retries", action_name); char buffer[512];
const char *value = g_hash_table_lookup(device_args, buffer); const char *value = NULL;
+ const char *st_dev_id_key = CRM_META "_" PCMK__XE_ST_DEVICE_ID; + const char *st_dev_id_key = CRM_META "_" PCMK__XE_ST_DEVICE_ID;
+ const char *st_dev_id_value = NULL; + const char *st_dev_id_value = NULL;
free(buffer); snprintf(buffer, sizeof(buffer), "pcmk_%s_retries", action_name);
value = g_hash_table_lookup(device_args, buffer);
@@ -279,6 +283,11 @@ stonith__action_create(const char *agent
if (value) { if (value) {
action->max_retries = atoi(value); action->max_retries = atoi(value);
} }
@@ -56,7 +57,7 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c
} }
return action; return action;
@@ -641,6 +650,10 @@ internal_stonith_action_execute(stonith_ @@ -640,6 +649,10 @@ internal_stonith_action_execute(stonith_
return -E2BIG; return -E2BIG;
} }
@@ -67,11 +68,11 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/lib/fencing/st_actions.c
/* keep retries from executing out of control and free previous results */ /* keep retries from executing out of control and free previous results */
if (is_retry) { if (is_retry) {
pcmk__reset_result(&(action->result)); pcmk__reset_result(&(action->result));
Index: pacemaker-3.0.1+20251119.6fa73e16/lib/services/services_linux.c Index: pacemaker-3.0.0+20250416.6085fd03bf/lib/services/services_linux.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/lib/services/services_linux.c --- pacemaker-3.0.0+20250416.6085fd03bf.orig/lib/services/services_linux.c
+++ pacemaker-3.0.1+20251119.6fa73e16/lib/services/services_linux.c +++ pacemaker-3.0.0+20250416.6085fd03bf/lib/services/services_linux.c
@@ -26,6 +26,9 @@ @@ -25,6 +25,9 @@
#include "crm/services.h" #include "crm/services.h"
#include "crm/services_internal.h" #include "crm/services_internal.h"
@@ -80,8 +81,8 @@ Index: pacemaker-3.0.1+20251119.6fa73e16/lib/services/services_linux.c
+ +
#include "services_private.h" #include "services_private.h"
static const char *filter_dir = NULL; static void close_pipe(int fildes[]);
@@ -472,6 +475,15 @@ static void @@ -446,6 +449,15 @@ static void
add_action_env_vars(const svc_action_t *op) add_action_env_vars(const svc_action_t *op)
{ {
void (*env_setter)(gpointer, gpointer, gpointer) = NULL; void (*env_setter)(gpointer, gpointer, gpointer) = NULL;

View File

@@ -4,37 +4,37 @@ Date: Thu Mar 14 09:41:53 2013 +0800
Log: Change some messages to notice level (bnc#806256) Log: Change some messages to notice level (bnc#806256)
Index: pacemaker-3.0.1+20251119.6fa73e16/daemons/controld/controld_membership.c Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_membership.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/daemons/controld/controld_membership.c --- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/controld/controld_membership.c
+++ pacemaker-3.0.1+20251119.6fa73e16/daemons/controld/controld_membership.c +++ pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_membership.c
@@ -458,7 +458,7 @@ crm_update_quorum(gboolean quorum, gbool @@ -431,7 +431,7 @@ crm_update_quorum(gboolean quorum, gbool
pcmk__xe_set_int(update, PCMK_XA_HAVE_QUORUM, quorum); crm_xml_add_int(update, PCMK_XA_HAVE_QUORUM, quorum);
pcmk__xe_set(update, PCMK_XA_DC_UUID, controld_globals.our_uuid); crm_xml_add(update, PCMK_XA_DC_UUID, controld_globals.our_uuid);
- crm_debug("Updating quorum status to %s", pcmk__btoa(quorum)); - crm_debug("Updating quorum status to %s", pcmk__btoa(quorum));
+ crm_notice("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_none, controld_update_cib(PCMK_XE_CIB, update, cib_none,
cib_quorum_update_complete); cib_quorum_update_complete);
pcmk__xml_free(update); pcmk__xml_free(update);
Index: pacemaker-3.0.1+20251119.6fa73e16/daemons/controld/controld_transition.c Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_transition.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/daemons/controld/controld_transition.c --- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/controld/controld_transition.c
+++ pacemaker-3.0.1+20251119.6fa73e16/daemons/controld/controld_transition.c +++ pacemaker-2.1.9+20241118.394d77ec98/daemons/controld/controld_transition.c
@@ -179,7 +179,7 @@ do_te_invoke(long long action, enum crmd @@ -168,7 +168,7 @@ do_te_invoke(long long action,
controld_globals.transition_graph = create_blank_graph(); CRM_CHECK(controld_globals.transition_graph != NULL,
return); controld_globals.transition_graph = create_blank_graph();
return);
- crm_info("Processing graph %d (ref=%s) derived from %s",
+ crm_notice("Processing graph %d (ref=%s) derived from %s",
controld_globals.transition_graph->id, ref, graph_input);
- crm_info("Processing graph %d (ref=%s) derived from %s", te_reset_job_counts();
+ crm_notice("Processing graph %d (ref=%s) derived from %s", Index: pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_remote.c
controld_globals.transition_graph->id, ref, graph_input);
te_reset_job_counts();
Index: pacemaker-3.0.1+20251119.6fa73e16/daemons/fenced/fenced_remote.c
=================================================================== ===================================================================
--- pacemaker-3.0.1+20251119.6fa73e16.orig/daemons/fenced/fenced_remote.c --- pacemaker-2.1.9+20241118.394d77ec98.orig/daemons/fenced/fenced_remote.c
+++ pacemaker-3.0.1+20251119.6fa73e16/daemons/fenced/fenced_remote.c +++ pacemaker-2.1.9+20241118.394d77ec98/daemons/fenced/fenced_remote.c
@@ -711,7 +711,7 @@ remote_op_timeout_one(gpointer userdata) @@ -699,7 +699,7 @@ remote_op_timeout_one(gpointer userdata)
static void static void
finalize_timed_out_op(remote_fencing_op_t *op, const char *reason) finalize_timed_out_op(remote_fencing_op_t *op, const char *reason)
{ {

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc111f2657491a21fe8552f9e87e77ac5995235d2f94d02eccd2515d7118a302
size 5372448

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae007589e9813a13098a3b9486a215f5b3f37fdc246c20d4147b8011398bd3a1
size 5386712

View File

@@ -1,17 +0,0 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details.
#
# Type Path Mode User Group Age Argument
d /var/lib/pacemaker 0750 hacluster haclient -
d /var/lib/pacemaker/blackbox 0750 hacluster haclient -
d /var/lib/pacemaker/cores 0750 hacluster haclient -
d /var/log/pacemaker 0770 hacluster haclient -
d /var/log/pacemaker/bundles 0770 hacluster haclient -

View File

@@ -1,220 +1,3 @@
-------------------------------------------------------------------
Mon Jan 12 17:03:49 UTC 2026 - Yan Gao <ygao@suse.com>
- spec: do not treat fillup templates as configuration files
-------------------------------------------------------------------
Mon Jan 12 11:39:23 UTC 2026 - Yan Gao <ygao@suse.com>
- build: install the default logrotate config into /usr/etc/logrotate.d
-------------------------------------------------------------------
Mon Dec 15 17:11:07 UTC 2025 - Yan Gao <ygao@suse.com>
- build: create directories in /var via tmpfiles.d
-------------------------------------------------------------------
Mon Dec 15 16:42:21 UTC 2025 - Yan Gao <ygao@suse.com>
- build: create hacluster user and haclient group via sysusers.d
-------------------------------------------------------------------
Tue Dec 09 09:51:48 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251208.f7f28ab3:
- agents: Deprecate allow_stonith_disabled param for controld RA
- agents: New allow_fencing_disabled param for controld RA
- agents: Use case-insensitive property matching in controld RA
- schemas: Deprecate stonith-timeout-ms in crm_mon output
- schemas: Deprecate stonith-enabled in crm_mon output
- various: New fencing-timeout-ms in crm_mon/pcmk_status output
- schemas: New fencing-timeout-ms attribute in crm_mon schema
- various: New fencing-enabled in crm_mon/pcmk_status output
- schemas: New fencing-enabled attribute in crm_mon schema
-------------------------------------------------------------------
Mon Dec 01 09:44:34 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251130.37f6466b:
- tools: cibadmin --xpath --delete-all deletes all matches again
- various: Use const for a few string pointer variables
-------------------------------------------------------------------
Wed Nov 26 13:14:14 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251125.39c07b64:
- cts: Respect cts-lab --nic option if specified for IPv4 (gh#ClusterLabs/pacemaker#3986)
- cts: cts-lab --nic option defaults to eth0 only for an IPv6 link local address (gh#ClusterLabs/pacemaker#3986)
-------------------------------------------------------------------
Tue Nov 25 13:14:57 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251124.253fbe4c:
- controller: Ask attribute manager to purge fenced nodes' attributes
- controller: Don't purge transient attributes on node loss (gh#ClusterLabs/pacemaker#3991)
- controller: Allow purging node attrs without cache removal
- controller: don't need to erase node attributes for remote nodes
- pacemaker-attrd: Drop "requesting shutdown" code
- pacemaker-attrd: Wipe CIB along with memory (gh#ClusterLabs/pacemaker#3991)
-------------------------------------------------------------------
Thu Nov 20 12:56:38 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251119.6fa73e16:
- libcrmservice: Correctly check the return value of stat.
- fencer: Improve validation of pcmk_host_map
- fencer: Drop support for escaped characters in pcmk_host_map
- fencer: Drop unhelpful message from build_port_aliases()
- fencer: Fix ISO 8601 interval parsing in pcmk_delay_base
- daemons: When checking for duplicate messages, we might be prepending.
- daemons: Don't add repeated I_PE_CALC messages to the fsa queue.
- scheduler: promoted state with promoted state with attribute
- fencer: Log an error for empty pcmk_delay_base mapping key
- fencer: Fix a format string
- libcrmservice: List only the requested directory contents
- build, libcrmservice: initdir must be a single directory
- libcrmservice: Fix memory leaks when listing directory contents
- Rebase:
* bug-806256_pacemaker-log-level-notice.patch
* bug-728579_pacemaker-stonith-dev-id.patch
-------------------------------------------------------------------
Wed Nov 05 15:56:21 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251105.192f0bc60:
- cts: Add cts-lab --nic option used for generated IP address resources (gh#ClusterLabs/pacemaker#3982)
-------------------------------------------------------------------
Tue Nov 04 10:32:17 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20251103.2d047bb45:
- libcrmcommon: Loop on EAGAIN in mainloop_gio_callback.
- daemons: Get rid of some logged warnings in execd.
- libcrmcommon: Bump feature set to 3.20.5
- libcrmcommon: Deprecate stop-removed-resources cluster property
- libcrmcommon: Deprecate cancel-removed-actions cluster property
- libpe_status: Warn if concurrent-fencing is false
- libcrmcommon: Deprecate enable-startup-probes cluster property
- libcrmcommon: Rename stop-removed-actions to cancel-removed-actions
- libcrmcommon: Deprecate cluster-ipc-limit cluster option
-------------------------------------------------------------------
Fri Sep 26 09:15:47 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20250925.efd4dc5283:
- cts-cli: Escape special characters in the path for a pattern (gh#ClusterLabs/pacemaker#3971)
-------------------------------------------------------------------
Fri Sep 19 15:28:11 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20250919.1ec160a815:
- tools: Prevent crm_verify from stating configuration is "invalid" if it only has warnings (bsc#1250349)
-------------------------------------------------------------------
Thu Sep 18 07:41:41 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20250917.3319ff40fa:
- tools: Handle large timeouts correctly in crm_resource --wait
- controller: NULL-check lrm_state before dereferencing it
- tools: cibsecret should work with CIB_file set.
- controller: Avoid "stonith" in log messages
- tools: Use "fencing" in stonith_admin/crm_resource
- libpe_status: Use "fencing" instead of "STONITH" in some logs
- libcrmcommon: New "fencing-reaction" cluster property
- libcrmcommon: New "fencing-watchdog-timeout" cluster property
- libcrmcommon: New "fencing-timeout" cluster property
- libcrmcommon: New "fencing-max-attempts" cluster property
- libcrmcommon: New "fencing-action" cluster property
- libcrmcommon: New "fencing-enabled" cluster property
- libcrmcommon: Update documentation for cluster-ipc-limit.
- libcrmcommon: Be more lenient in evicting IPC clients.
- tools: Deprecate iso8601 command line tool
- libcrmcommon: Show deprecated option aliases in outputs
- libcrmcommon: Parse iso8601 strings according to spec.
- fencer: Prevent unsigned int overflow in get_action_timeout()
- libcrmcommon: Fix integer overflow of alert timeouts
- libcrmcommon: Ensure stonith watchdog timeout is in long range
- controller, fencer: Ignore negative/unparsable pcmk_monitor_timeout
- cts: Drop cts script
- tools: Drop crm_report -T/--cts and --cts-log options
- schemas: Deprecate "orphaned" attribute
- schemas: resource XML element has new "removed" attribute
- schemas: Deprecate "orphan" attribute in crm_mon and crm_simulate
- schemas: resource_history XML element has new "removed" attribute
- libcrmcommon: Fix a segfault in internal_ipc_get_reply. (bsc#1255371, gh#ClusterLabs/pacemaker#3949)
- libcrmcommon: New "stop-removed-resources" cluster property
- libcrmcommon: New "stop-removed-actions" cluster property
- sysconfig: Remove --leak-check=full from default VALGRIND_OPTS.
- tools: Hide crm_mon --as-xml option
- crm_mon: Deprecate --pid-file/-p option
- tools: Fix CIB validation in crm_mon.c
- libcib, libcrmcommon: Improve a couple of log messages
- libcrmcommon: pcmk__quote_cmdline() returns valid shell string
- libcrmcommon: Bump feature set to 3.20.4
- schemas: Add a schema for cibadmin
- tools: Use formatted output in cibadmin
- tools: Formatted output for cibadmin --show-access --query
- tools: Formatted output for cibadmin --node-path
- tools: Basic cibadmin XML formatted output
- tools: Formatted output for cibadmin --empty
- tools: Formatted output for cibadmin --md5-sum{,-versioned}
- tools: Deprecate cibadmin -e/--node-path option
- libcrmcommon: bump feature set to 3.20.3
- schemas: Add a schema for cibsecret.
- libcrmcommon: Return a value for md5sum of empty input.
- tools: Remove the shell version of cibsecret.
- Rebase:
* bug-806256_pacemaker-log-level-notice.patch
* bug-728579_pacemaker-stonith-dev-id.patch
-------------------------------------------------------------------
Fri Aug 08 17:43:52 UTC 2025 - Yan Gao <ygao@suse.com>
- Update to version 3.0.1+20250808.78542884ac:
- tools: Improve some cibadmin error messages
- tools: cibadmin renders ACLs only when output is cib element
- tools: cibadmin now errors if unable to compute md5 sum
- libcib, tools: Resolve cibadmin TODO re: ACL rendering and input
- controller: Avoid crash due to GSource double-free
- tools: Deprecate cibadmin -N/--node option
- tools: Drop "Digest: " from cibadmin --md5-sum stderr
- tools: cibadmin ignores --node-path for non-XPath-query command
- tools: Change exit codes for failure to create cib_t object
- libcib: Fix cib__signon_retry() return code
- various: Avoid warnings about a negative value for `stonith-watchdog-timeout` (bsc#1246622, gh#ClusterLabs/pacemaker#3922)
- tools: Deprecate cibadmin --show-access as non-privileged user
- tools: Don't require --force for non-privileged cibadmin ACLs
- tools: Default cibadmin command is now --query
- tools: Deprecate current input source precedence in cibadmin
- tools: Drop cibadmin --extended-version/-! option
- libcrmcommon: Bump feature set to 3.20.2
- schemas: Add a schema for crm_diff
- tools: Use formatted output in crm_diff.c
- libcrmcommon: Standardize remote environment variable parsing
- libcrmcommon: Allow empty string values in pcmk__scan_nvpair()
- libcrmcommon: Keep trailing newlines in pcmk__scan_nvpair()
- fencer: Fix fence delay range off-by-one
- daemons: Return CRM_EX_PROTOCOL when ACKing an unknown request.
- daemons: Correct result error string on unknown IPC messages.
- daemons: Add a return to do_pe_invoke_callback.
- tools: Deprecate crm_diff --stdin
- tools: Improve error handling in crm_diff.c
- tools: Be stricter about crm_diff --cib/--no-version
- libcrmcommon: Don't require version info when applying CIB patches
- agents: Error check calling attrd_updater in HealthSMART.
- agents: Error check calling attrd_updater in HealthIOWait.
- agents: Error out if CPU I/O wait time isn't available.
- agents: Error check calling attrd_updater in HealthCPU.
- agents: Error out if CPU idleness isn't available.
- daemons: Don't log the unresponsive message for a daemon we killed
- controller: Avoid blocking wait in controller for CIB re-request
- libcrmcommon: Increase poll() timeout to 5s for liveness checks on sub-daemons (bsc#1239533, gh#ClusterLabs/pacemaker#3900)
- Rebase:
* bug-728579_pacemaker-stonith-dev-id.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Aug 07 17:54:32 UTC 2025 - Yan Gao <ygao@suse.com> Thu Aug 07 17:54:32 UTC 2025 - Yan Gao <ygao@suse.com>

View File

@@ -35,13 +35,6 @@
# Define conditionals so that "rpmbuild --with <feature>" and # Define conditionals so that "rpmbuild --with <feature>" and
# "rpmbuild --without <feature>" can enable and disable specific features # "rpmbuild --without <feature>" can enable and disable specific features
## Use systemd to create users/groups as required
%if (0%{?suse_version} >= 1600)
%bcond_without use_sysusers
%else
%bcond_with use_sysusers
%endif
## Add option for Linux-HA (stonith/external) fencing agent support ## Add option for Linux-HA (stonith/external) fencing agent support
%if 0%{?suse_version} < 1600 %if 0%{?suse_version} < 1600
%bcond_without linuxha %bcond_without linuxha
@@ -128,7 +121,7 @@
%define with_regression_tests 0 %define with_regression_tests 0
Name: pacemaker Name: pacemaker
Version: 3.0.1+20251208.f7f28ab3 Version: 3.0.1+20250807.16e74fc4da
Release: 0 Release: 0
Summary: Scalable High-Availability cluster resource manager Summary: Scalable High-Availability cluster resource manager
# AGPL-3.0 licensed extra/clustermon.sh is not present in the binary # AGPL-3.0 licensed extra/clustermon.sh is not present in the binary
@@ -136,10 +129,7 @@ License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Productivity/Clustering/HA Group: Productivity/Clustering/HA
URL: https://www.clusterlabs.org/ URL: https://www.clusterlabs.org/
Source0: %{name}-%{version}.tar.xz Source0: %{name}-%{version}.tar.xz
Source1: %{name}.sysusers Source1: crm_report.in
Source2: %{name}-cli.tmpfiles.conf
Source3: %{name}.tmpfiles.conf
Source4: crm_report.in
Source100: pacemaker.rpmlintrc Source100: pacemaker.rpmlintrc
Patch1: bug-806256_pacemaker-log-level-notice.patch Patch1: bug-806256_pacemaker-log-level-notice.patch
Patch2: bug-728579_pacemaker-stonith-dev-id.patch Patch2: bug-728579_pacemaker-stonith-dev-id.patch
@@ -170,9 +160,6 @@ BuildRequires: python3-setuptools
# Required for agent_config.h which specifies the correct scratch directory # Required for agent_config.h which specifies the correct scratch directory
BuildRequires: resource-agents BuildRequires: resource-agents
BuildRequires: sed BuildRequires: sed
%if %{with use_sysusers}
BuildRequires: sysuser-tools
%endif
BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(bzip2)
# Required for "make check" # Required for "make check"
BuildRequires: pkgconfig(cmocka) >= 1.1.0 BuildRequires: pkgconfig(cmocka) >= 1.1.0
@@ -271,9 +258,6 @@ Summary: Core Pacemaker libraries
Group: System/Libraries Group: System/Libraries
Requires(pre): shadow Requires(pre): shadow
Requires: %{name}-schemas = %{version}-%{release} Requires: %{name}-schemas = %{version}-%{release}
%if %{with use_sysusers}
%?sysusers_requires
%endif
# sbd 1.4.0+ supports the libpe_status API for pe_working_set_t # sbd 1.4.0+ supports the libpe_status API for pe_working_set_t
# sbd 1.4.2+ supports startup/shutdown handshake via pacemakerd-api # sbd 1.4.2+ supports startup/shutdown handshake via pacemakerd-api
# and handshake defaults to enabled for rhel builds # and handshake defaults to enabled for rhel builds
@@ -459,10 +443,6 @@ pushd python
%py3_build %py3_build
popd popd
%if %{with use_sysusers}
%sysusers_generate_pre %{SOURCE1} %{name} %{name}.conf
%endif
%install %install
%make_install %make_install
@@ -475,11 +455,6 @@ install -d -m755 %{buildroot}%{_fillupdir}
install -m 644 etc/sysconfig/pacemaker %{buildroot}%{_fillupdir}/sysconfig.pacemaker install -m 644 etc/sysconfig/pacemaker %{buildroot}%{_fillupdir}/sysconfig.pacemaker
install -m 644 etc/sysconfig/crm_mon %{buildroot}%{_fillupdir}/sysconfig.crm_mon install -m 644 etc/sysconfig/crm_mon %{buildroot}%{_fillupdir}/sysconfig.crm_mon
%if (0%{?suse_version} >= 1600)
install -d -m 0755 %{buildroot}%{_distconfdir}/logrotate.d
install -p -D -m 0644 etc/logrotate.d/%{name} %{buildroot}%{_distconfdir}/logrotate.d/%{name}
%endif
%if %{with nls} %if %{with nls}
%find_lang %{name} %find_lang %{name}
%endif %endif
@@ -493,20 +468,8 @@ ln -s service %{buildroot}%{_sbindir}/rcpacemaker
ln -s service %{buildroot}%{_sbindir}/rcpacemaker_remote ln -s service %{buildroot}%{_sbindir}/rcpacemaker_remote
ln -s service %{buildroot}%{_sbindir}/rccrm_mon ln -s service %{buildroot}%{_sbindir}/rccrm_mon
# sysusers.d
%if %{with use_sysusers}
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf
%endif
# tmpfiles.d
%if %{defined _tmpfilesdir}
install -d -m 0755 %{buildroot}/%{_tmpfilesdir}
install -p -D -m 0644 %{SOURCE2} %{buildroot}/%{_tmpfilesdir}/%{name}-cli.conf
install -p -D -m 0644 %{SOURCE3} %{buildroot}/%{_tmpfilesdir}/%{name}.conf
%endif
mv %{buildroot}%{_sbindir}/crm_report %{buildroot}%{_sbindir}/crm_report.pacemaker mv %{buildroot}%{_sbindir}/crm_report %{buildroot}%{_sbindir}/crm_report.pacemaker
install -m 755 %{SOURCE4} %{buildroot}%{_sbindir}/crm_report install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/crm_report
%if 0%{?suse_version} < 1600 %if 0%{?suse_version} < 1600
ln -s ../heartbeat/NodeUtilization %{buildroot}%{ocf_root}/resource.d/pacemaker/ ln -s ../heartbeat/NodeUtilization %{buildroot}%{ocf_root}/resource.d/pacemaker/
@@ -528,10 +491,6 @@ make %{_smp_mflags} check
%service_add_pre pacemaker.service %service_add_pre pacemaker.service
%post %post
%if %{defined _tmpfilesdir}
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%endif
%service_add_post pacemaker.service %service_add_post pacemaker.service
%preun %preun
@@ -556,10 +515,6 @@ make %{_smp_mflags} check
%service_add_pre crm_mon.service %service_add_pre crm_mon.service
%post cli %post cli
%if %{defined _tmpfilesdir}
%tmpfiles_create %{_tmpfilesdir}/%{name}-cli.conf
%endif
if [ ! -e %{_sysconfdir}/sysconfig/pacemaker ]; then if [ ! -e %{_sysconfdir}/sysconfig/pacemaker ]; then
%fillup_only -n pacemaker %fillup_only -n pacemaker
fi fi
@@ -578,35 +533,16 @@ if [ "$1" -eq "2" ]; then
} >/dev/null 2>/dev/null || : } >/dev/null 2>/dev/null || :
fi fi
%if (0%{?suse_version} >= 1600)
# Prepare for migration to /usr/etc; save any old .rpmsave
for i in logrotate.d/%{name} ; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||:
done
%endif
%if (0%{?suse_version} >= 1600)
%posttrans cli
# Migration to /usr/etc, restore just created .rpmsave
for i in logrotate.d/%{name} ; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||:
done
%endif
%preun cli %preun cli
%service_del_preun crm_mon.service %service_del_preun crm_mon.service
%postun cli %postun cli
%service_del_postun crm_mon.service %service_del_postun crm_mon.service
%if %{with use_sysusers}
%pre libs -f %{name}.pre
%else
%pre libs %pre libs
getent group %{gname} >/dev/null || groupadd -r %{gname} -g %{hacluster_id} getent group %{gname} >/dev/null || groupadd -r %{gname} -g %{hacluster_id}
getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u %{hacluster_id} -d %{_var}/lib/pacemaker -s /sbin/nologin -c "cluster user" %{uname} getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u %{hacluster_id} -d %{_var}/lib/pacemaker -s /sbin/nologin -c "cluster user" %{uname}
exit 0 exit 0
%endif
%if %{defined ldconfig_scriptlets} %if %{defined ldconfig_scriptlets}
%ldconfig_scriptlets libs %ldconfig_scriptlets libs
@@ -668,24 +604,14 @@ fi
%license COPYING %license COPYING
%doc ChangeLog.md %doc ChangeLog.md
%if %{defined _tmpfilesdir}
%{_tmpfilesdir}/%{name}.conf
%else
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine
%endif
%{ocf_root}/resource.d/pacemaker/controld %{ocf_root}/resource.d/pacemaker/controld
%{ocf_root}/resource.d/pacemaker/remote %{ocf_root}/resource.d/pacemaker/remote
%files cli %files cli
%dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker %dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker
%if (0%{?suse_version} >= 1600)
%{_distconfdir}/logrotate.d/%{name}
%exclude %{_sysconfdir}/logrotate.d/%{name}
%else
%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker %config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker
%endif
%{_unitdir}/crm_mon.service %{_unitdir}/crm_mon.service
%{_sbindir}/rccrm_mon %{_sbindir}/rccrm_mon
%{_sbindir}/attrd_updater %{_sbindir}/attrd_updater
@@ -727,8 +653,8 @@ fi
%dir %{ocf_root}/resource.d %dir %{ocf_root}/resource.d
%{ocf_root}/resource.d/pacemaker %{ocf_root}/resource.d/pacemaker
%{_fillupdir}/sysconfig.pacemaker %config(noreplace) %{_fillupdir}/sysconfig.pacemaker
%{_fillupdir}/sysconfig.crm_mon %config(noreplace) %{_fillupdir}/sysconfig.crm_mon
%{_mandir}/man7/*pacemaker* %{_mandir}/man7/*pacemaker*
%exclude %{_mandir}/man7/pacemaker-based.* %exclude %{_mandir}/man7/pacemaker-based.*
%exclude %{_mandir}/man7/pacemaker-controld.* %exclude %{_mandir}/man7/pacemaker-controld.*
@@ -749,20 +675,13 @@ fi
%license COPYING %license COPYING
%doc ChangeLog.md %doc ChangeLog.md
%if %{defined _tmpfilesdir}
%{_tmpfilesdir}/%{name}-cli.conf
%else
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/blackbox %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/blackbox
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cores %dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cores
%dir %attr (770, %{uname}, %{gname}) %{_var}/log/pacemaker %dir %attr (770, %{uname}, %{gname}) %{_var}/log/pacemaker
%dir %attr (770, %{uname}, %{gname}) %{_var}/log/pacemaker/bundles %dir %attr (770, %{uname}, %{gname}) %{_var}/log/pacemaker/bundles
%endif
%files libs %{?with_nls:-f %{name}.lang} %files libs %{?with_nls:-f %{name}.lang}
%if %{with use_sysusers}
%{_sysusersdir}/%{name}.conf
%endif
%{_libdir}/libcib.so.* %{_libdir}/libcib.so.*
%{_libdir}/liblrmd.so.* %{_libdir}/liblrmd.so.*
%{_libdir}/libcrmservice.so.* %{_libdir}/libcrmservice.so.*

View File

@@ -1,3 +0,0 @@
#Type Name ID GECOS Home directory Shell
g haclient 189
u hacluster 189:haclient "cluster user" /var/lib/pacemaker /sbin/nologin

View File

@@ -1,13 +0,0 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details.
#
# Type Path Mode User Group Age Argument
d /var/lib/pacemaker/cib 0750 hacluster haclient -
d /var/lib/pacemaker/pengine 0750 hacluster haclient -