File pacemaker.spec of Package pacemaker.14737
#
# spec file for package pacemaker
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
# Globals and defines to control package behavior (configure these as desired)
## User and group to use for nonprivileged services
%global uname hacluster
%global gname haclient
## Where to install Pacemaker documentation
%global pcmk_docdir %{_docdir}/%{name}
## GitHub entity that distributes source (for ease of using a fork)
%global github_owner ClusterLabs
## Upstream pacemaker version, and its package version (specversion
## can be incremented to build packages reliably considered "newer"
## than previously built packages with the same pcmkversion)
%global pcmkversion 1.1.15
%global specversion 1
## Upstream commit (or git tag, such as "Pacemaker-" plus the
## {pcmkversion} macro for an official release) to use for this package
%global commit HEAD
## Since git v2.11, the extent of abbreviation is autoscaled by default
## (used to be constant of 7), so we need to convey it for non-tags, too.
%global commit_abbrev 7
# Define globals for convenient use later
## Workaround to use parentheses in other globals
%global lparen (
%global rparen )
## Short version of git commit
%define shortcommit %(c=%{commit}; case ${c} in
Pacemaker-*%{rparen} echo ${c:10};;
*%{rparen} echo ${c:0:%{commit_abbrev}};; esac)
## Whether this is a tagged release
%define tag_release %([ %{commit} != Pacemaker-%{shortcommit} ]; echo $?)
## Whether this is a release candidate (in case of a tagged release)
%define pre_release %(s=%{shortcommit}; [ "%{tag_release}" -eq 0 ] || {
case %{s} in *-rc[[:digit:]]*%{rparen} false;;
esac; }; echo $?)
## Turn off auto-compilation of python files outside site-packages directory,
## so that the -libs-devel package is multilib-compliant (no *.py[co] files)
%global __os_install_post %(echo '%{__os_install_post}' | {
sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g'; })
## Heuristic used to infer bleeding-edge deployments that are
## less likely to have working versions of the documentation tools
#%define bleeding %(test ! -e /etc/yum.repos.d/fedora-rawhide.repo; echo $?)
%define bleeding 0
## Corosync version
#%define cs_version %(pkg-config corosync --modversion 2>/dev/null | awk -F . '{print $1}')
%define cs_version 2
## Where to install python site libraries (currently, this uses the unversioned
## python_sitearch macro to get the default system python, but at some point,
## we should explicitly choose python2_sitearch or python3_sitearch -- or both)
%define py_site %{?python_sitearch}%{!?python_sitearch:%(
python -c 'from distutils.sysconfig import get_python_lib as gpl; print(gpl(1))' 2>/dev/null)}
## Whether this platform defaults to using CMAN
%define cman_native (0%{?el6} || (0%{?fedora} > 0 && 0%{?fedora} < 17))
## Whether this platform defaults to using systemd as an init system
## (needs to be evaluated prior to BuildRequires being enumerated and
## installed as it's intended to conditionally select some of these, and
## for that there are only few indicators with varying reliability:
## - presence of systemd-defined macros (when building in a full-fledged
## environment, which is not the case with ordinary mock-based builds)
## - systemd-aware rpm as manifested with the presence of particular
## macro (rpm itself will trivially always be present when building)
## - existence of /usr/lib/os-release file, which is something heavily
## propagated by systemd project
## - when not good enough, there's always a possibility to check
## particular distro-specific macros (incl. version comparison)
%define systemd_native (%{?_unitdir:1}%{!?_unitdir:0}%{nil \
} || %{?__transaction_systemd_inhibit:1}%{!?__transaction_systemd_inhibit:0}%{nil \
} || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?))
# Definitions for backward compatibility with older RPM versions
## Ensure the license macro behaves consistently (older RPM will otherwise
## overwrite it once it encounters "License:"). Courtesy Jason Tibbitts:
## https://pkgs.fedoraproject.org/cgit/rpms/epel-rpm-macros.git/tree/macros.zzz-epel?h=el6&id=e1adcb77
%if !%{defined _licensedir}
%define description %{lua:
rpm.define("license %doc")
print("%description")
}
%endif
# Define conditionals so that "rpmbuild --with <feature>" and
# "rpmbuild --without <feature>" can enable and disable specific features
## Add option to enable support for stonith/external fencing agents
%bcond_without stonithd
## Add option to create binaries suitable for use with profiling tools
%bcond_with profiling
## Add option to create binaries with coverage analysis
%bcond_with coverage
## Add option to skip generating documentation
## (the build tools aren't available everywhere)
%bcond_with doc
## Add option to prefix package version with "0."
## (so later "official" packages will be considered updates)
%bcond_with pre_release
## Add option to ship Upstart job files
%bcond_with upstart_job
## Add option to turn off CMAN support on CMAN-native platforms
%bcond_with cman
# Keep sane profiling data if requested
%if %{with profiling}
## Disable -debuginfo package and stripping binaries/libraries
%define debug_package %{nil}
%endif
# Define the release version
# (do not look at externally enforced pre-release flag for tagged releases
# as only -rc tags, captured with the second condition, implies that then)
%if (!%{tag_release} && %{with pre_release}) || 0%{pre_release}
%if 0%{pre_release}
%define pcmk_release 0.%{specversion}.%(s=%{shortcommit}; echo ${s: -3})
%else
%define pcmk_release 0.%{specversion}.%{shortcommit}.git
%endif
%else
%if 0%{tag_release}
%define pcmk_release %{specversion}
%else
%define pcmk_release %{specversion}.%{shortcommit}.git
%endif
%endif
#%if 0%{?suse_version}
#%define _libexecdir %{_libdir}
#%endif
%define with_corosync_support 1
%define with_heartbeat_support 0
%define with_nagios 1
%define with_snmp 1
%define with_esmtp 1
%define with_acl 1
%define with_cibsecrets 1
%define enable_lib_cluster_pkg 0
%define enable_fatal_warnings 1
%define with_regression_tests 0
%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif
Name: pacemaker
#Version: %{pcmkversion}
Version: 1.1.15
Release: 0
#Release: %{pcmk_release}%{?dist}
Summary: Scalable High-Availability cluster resource manager
# AGPL-3.0 licensed extra/clustermon.sh is not present in the binary
License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Productivity/Clustering/HA
URL: http://www.clusterlabs.org
# Hint: use "spectool -s 0 pacemaker.spec" (rpmdevtools) to check the final URL:
# https://github.com/ClusterLabs/pacemaker/archive/e91769e5a39f5cb2f7b097d3c612368f0530535e/pacemaker-e91769e.tar.gz
#Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Source0: %{name}.tar.bz2
Source1: crm_report.in
Source100: pacemaker.rpmlintrc
Patch1: bug-806256_pacemaker-log-level-notice.patch
Patch2: bug-728579_pacemaker-stonith-dev-id.patch
Patch3: bug-1015842_pacemaker-NodeUtilization-RA.patch
Patch4: pacemaker-cibsecret-tool-temp-disabled.patch
Patch5: pacemaker-nagios-plugin-dir.patch
Patch6: bug-812269_pacemaker-fencing-device-register-messages.patch
Patch7: pacemaker-Wno-format-signedness.patch
Patch8: bug-943295_pacemaker-lrmd-log-notice.patch
Patch9: bug-977201_pacemaker-controld-self-fencing.patch
Patch10: pacemaker-systemd-unit-name-ending-in-socket.patch
Patch11: bug-986201_pacemaker-pengine-tools-print-pending-state.patch
Patch12: bug-986201_pacemaker-pengine-tools-print-pending-state-tests.patch
Patch13: pacemaker-alert-snmp-example-timestamp-format.patch
Patch14: bug-986265_pacemaker-fence_legacy-hostlist.patch
Patch15: pacemaker-systemd-list-socket-units.patch
Patch16: pacemaker-crm_mon-break-up-long-lines.patch
Patch17: pacemaker-crm_mon-maintenance-disabled-blocked-resources-xml-html.patch
Patch18: pacemaker-pengine-target-role-blocked-status-xml.patch
Patch19: bug-986931_pacemaker-crm_mon-crm_diff_update_v2-log-1.patch
Patch20: bug-987348_pacemaker-ping-sensible-error-tmp-full.patch
Patch21: pacemaker-crmd-load-reduced-carries-out-action.patch
Patch22: bug-986931_pacemaker-crm_mon-crm_diff_update_v2-log-2.patch
Patch23: pacemaker-libcrmcommon-xml-format-specifier-log-message.patch
Patch24: pacemaker-libcrmcommon-xml-log-comments.patch
Patch25: pacemaker-crmd-transitions-for-CIB-comment-changes.patch
Patch26: pacemaker-libcrmcommon-xml-find_element.patch
Patch27: pacemaker-libcrmcommon-xml-comments-v2-diffs.patch
Patch28: bug-995365_pacemaker-cts-restart-systemd-journald.patch
Patch29: pacemaker-libpengine-pe_order_same_node.patch
Patch30: pacemaker-pengine-transition-loop-start-then-stop-unfencing.patch
Patch31: pacemaker-pengine-transition-loop-start-then-stop-unfencing-update-tests.patch
Patch32: pacemaker-pengine-transition-loop-start-then-stop-unfencing-test.patch
Patch33: pacemaker-crmd-dc-lrm-state.patch
Patch34: pacemaker-fencing-cib-signon-stonithd-name.patch
Patch35: pacemaker-libcib-deletion-notice-registration.patch
Patch36: pacemaker-crmd-down-event-log.patch
Patch37: pacemaker-lrmd-libcluster-g_hash_table_foreach-null-table.patch
Patch38: pacemaker-pengine-null-dereference-same-node-ordering.patch
Patch39: pacemaker-pengine-OCF_RESKEY_CRM_meta_notify_active-multistate-resources.patch
Patch40: pacemaker-pengine-OCF_RESKEY_CRM_meta_notify_active-multistate-resources-update-tests.patch
Patch41: pacemaker-crm_mon-xml-schema-multiple-active.patch
Patch42: pacemaker-lib-memory-allocation-errors.patch
Patch43: pacemaker-crmd-clear-remote-node-operation-when-comes-up.patch
Patch44: pacemaker-crmd-set-R_SHUTDOWN.patch
Patch45: bug-987348-pacemaker-ping-avoid-temporary-files-fping-1.patch
Patch46: pacemaker-crmd-resend-shutdown-request.patch
Patch47: bug-987348-pacemaker-ping-avoid-temporary-files-fping-2.patch
Patch48: bug-1000743_pacemaker-pengine-shutdown-maintenance-node.patch
Patch49: bug-1000743_pacemaker-pengine-shutdown-maintenance-node-test.patch
Patch50: pacemaker-libcrmcommon-refactor-sbd_timeout.patch
Patch51: pacemaker-remote-clients-timeout-reconnect.patch
Patch52: pacemaker-crm_mon-CRM_notify_recipient-null.patch
Patch53: pacemaker-libfencing-report-node-ID.patch
Patch54: bug-986644_pacemaker-remote-recv-msg-timeouts.patch
Patch55: bug-986644_pacemaker-libcrmcommon-errors-waiting-for-data.patch
Patch56: pacemaker-pacemaker.service-stonithd.patch
Patch57: pacemaker-libpengine-startup-fencing-warning-once.patch
Patch58: pacemaker-libpengine-child-use-of-null.patch
Patch59: pacemaker-crm_standby-version-help-without-cluster.patch
Patch60: pacemaker-mcp-sysconfig-doc-1.patch
Patch61: pacemaker-ClusterMon-matching-process.patch
Patch62: bug-1003565_pacemaker-crmd-record-pending-op.patch
Patch63: pacemaker-attrd_updater-HAVE_ATOMIC_ATTRD.patch
Patch64: pacemaker-various-issues-valgrind-coverity.patch
Patch65: pacemaker-mcp-sysconfig-doc-2.patch
Patch66: bug-1007433_pacemaker-libcrmcommon-CVE-2016-7035-improper-IPC-guarding.patch
Patch67: pacemaker-fix-missing-qbarray.h.patch
Patch68: pacemaker-mcp-pacemaker_remote-order-after-time-sync.patch
Patch69: pacemaker-crm_perror-appends-a-colon-to-its-fmt-argument.patch
Patch70: pacemaker-xml-no-error-if-output-file-isnt-syncable.patch
Patch71: pacemaker-resources-2.7.rng-update-template-class-validation.patch
Patch72: bug-1011240_pacemaker-crmd-increase-severity-fencing-didnt-happen.patch
Patch73: bug-1059187_pacemaker-libservice-systemd-service-reloading-OK.patch
Patch74: pacemaker-stonith-check-missing-params-new-device-and-dup.patch
Patch75: pacemaker-various-spelling-errors-log-messages.patch
Patch76: pacemaker-mcp-access-permission-setting.patch
Patch77: pacemaker-pengine-remove-unnecessary-assert.patch
Patch78: pacemaker-pengine-guest-node-fencing-doesnt-require-stonith-enabled.patch
Patch79: pacemaker-pengine-test-guest-node-host-dies.patch
Patch80: pacemaker-pengine-pseudo-fence-guest-node-recovery.patch
Patch81: pacemaker-pengine-guest-node-unclean-if-host-unclean.patch
Patch82: pacemaker-pengine-tests-guest-node-pseudo-fencing.patch
Patch83: pacemaker-crmd-update-cache-status-guest-node-host-fenced.patch
Patch84: bug-1015264_pacemaker-libservices-refactor-DBus-code.patch
Patch85: bug-1015264_pacemaker-dbus_connection_dispatch.patch
Patch86: pacemaker-Alert-SNMP_PERSISTENT_DIR-snmp-trap.patch
Patch87: pacemaker-tools-dont-reference-hidden-parameter-crm_resource-help.patch
Patch88: pacemaker-libservices-watch-writable-DBus-handles.patch
Patch89: pacemaker-libcrmcommon-crm_copy_xml_element.patch
Patch90: bug-888726_pacemaker-tools-crm_diff-no-version.patch
Patch91: pacemaker-tools-crm_diff-description-messages.patch
Patch92: pacemaker-crmd-LRM-related-log-messages.patch
Patch93: pacemaker-crmd-resilient-checking-LRM-command-from.patch
Patch94: pacemaker-libcrmcommon-filename-not-NULL-before-opening.patch
Patch95: pacemaker-cib-warning-legacy-diff-fails.patch
Patch96: pacemaker-regular-expression-for-fail-counts-crm_resource.patch
Patch97: pacemaker-crm_failcount-command-line-options.patch
Patch98: pacemaker-cib-re-sync-handling.patch
Patch99: pacemaker-libservices-no-zombie-left.patch
Patch100: pacemaker-libservices-prevent-killing-foreign-process.patch
Patch101: pacemaker-crm_mon-non-standard-failing-asctime.patch
Patch102: pacemaker-pass-local-node-name-to-resource-agents.patch
Patch103: pacemaker-pass-local-node-name-to-resource-agents-tests.patch
Patch104: pacemaker-crmd-libcrmcluster-log-message.patch
Patch105: bug-1024037_pacemaker-libcrmcommon-compare-XML-comments.patch
Patch106: bug-1024037_pacemaker-libcrmcommon-delete-XML-comments.patch
Patch107: pacemaker-crm_attribute-prefer-node-name-from-environment.patch
Patch108: pacemaker-IP-addresses-messages.patch
Patch109: pacemaker-tools-NULL-dereference-crm_resource.patch
Patch110: pacemaker-libcib-memory-leak-query_node_uuid.patch
Patch111: pacemaker-cib-mark-variable-as-volatile.patch
Patch112: pacemaker-pengine-dont-clear-same-fail-count-twice.patch
Patch113: pacemaker-pengine-failcount-clearing-messages.patch
Patch114: pacemaker-crmd-message-clearing-failures.patch
Patch115: pacemaker-crmd-clear-failure-only-for-requested-node.patch
Patch116: pacemaker-pengine-tests-new-operation-name.patch
Patch117: pacemaker-libcrmcommon-remote-connection-polling-messages.patch
Patch118: pacemaker-libcrmcommon-assert-cant-generate-operation-key.patch
Patch119: pacemaker-libservices-completed-ops-arent-on-blocked-ops-list.patch
Patch120: pacemaker-libservices-dynamically-allocate-operation-key.patch
Patch121: pacemaker-libservices-use-after-free-freeing-an-operation.patch
Patch122: pacemaker-libservices-handle-in-flight-first-cancelling-an-operation.patch
Patch123: pacemaker-libservices-cancel-in-flight-systemd-op.patch
Patch124: pacemaker-libservices-detect-in-flight-systemd-ops-kicking.patch
Patch125: pacemaker-libservices-error-messages-creating-operation.patch
Patch126: pacemaker-libservices-recurring-actions-table-created-before-using.patch
Patch127: pacemaker-fencing-remap-action.patch
Patch128: pacemaker-crmd-log-level-join_make_offer-1.patch
Patch129: pacemaker-crmd-log-level-join_make_offer-2.patch
Patch130: pacemaker-tools-support-crm_failcount-q.patch
Patch131: pacemaker-crm_resource-OCF_RESKEY_crm_feature_set.patch
Patch132: pacemaker-pacemaker_remoted-shutdown-while-unmanaged.patch
Patch133: pacemaker-log-various-minor-improvements.patch
Patch134: pacemaker-crmd-log-join-phase-as-text.patch
Patch135: pacemaker-pengine-recovery-demote-OCF_NOT_RUNNING.patch
Patch136: pacemaker-pengine-test-clone.patch
Patch137: pacemaker-xml-find-first-child.patch
Patch138: pacemaker-pengine-preferred-nodes-scores-equal-best-candidate.patch
Patch139: pacemaker-remoted-compilation-glib-older.patch
Patch140: pacemaker-crm_resource-free-result-if-re-running.patch
Patch141: pacemaker-libcrmcommon-message-cannot-open-dump-file.patch
Patch142: pacemaker-crmd-dont-abandon-fencing-after-one-no-devices-failure.patch
Patch143: pacemaker-crmd-log-node-status.patch
Patch144: pacemaker-fencing-ignore-empty-action.patch
Patch145: pacemaker-crmd-check-too-many-stonith-failures.patch
Patch146: pacemaker-crmd-consider-target-checking-stonith-failures.patch
Patch147: pacemaker-crmd-forget-stonith-failures-forgetting-node.patch
Patch148: pacemaker-crmd-track-stonith-fail-counts-on-all-nodes.patch
Patch149: pacemaker-crmd-allow-clearing-all-stonith-fail-counts.patch
Patch150: pacemaker-crmd-skip-restart-at-stonith-max-attempts.patch
Patch151: pacemaker-crmd-dont-restart-transition-if-no-fence-devices.patch
Patch152: pacemaker-crmd-avoid-DC-sending-offer-to-itself-twice.patch
Patch153: pacemaker-crmd-dont-fence-old-DC-if-shutting-down-as-soon-to-be-DC-joins.patch
Patch154: pacemaker-extra-Dummy-use-whitespace-consistently.patch
Patch155: pacemaker-extra-Dummy-stop-not-fail-if-monitor-is-in-progress.patch
Patch156: pacemaker-libcrmcommon-filter-attributes.patch
Patch157: pacemaker-pengine-test-per-op-fail-count.patch
Patch158: pacemaker-lrmd-pacemaker-remote-reap-zombies.patch
Patch159: pacemaker-crmd-fencing-result-message.patch
Patch160: pacemaker-crmd-check-correct-timer.patch
Patch161: pacemaker-CTS-update-corosync-fail-patterns.patch
Patch162: pacemaker-crmd-functionize-setting-throttle-load-target.patch
Patch163: pacemaker-crmd-functionize-checking-throttle-thresholds.patch
Patch164: pacemaker-libcrmcommon-function-get-number-of-CPU-cores.patch
Patch165: pacemaker-crmd-remove-IO-load-checks.patch
Patch166: pacemaker-crmd-update-throttle-CPUs-hot-plugged.patch
Patch167: pacemaker-libcib-functionize-destroying-op-callback-table.patch
Patch168: pacemaker-crmd-use-after-free-disconnecting-from-CIB.patch
Patch169: pacemaker-crmd-dont-destroy-election-structure-twice.patch
Patch170: pacemaker-libcib-ACL-status-message-to-trace.patch
Patch171: pacemaker-libcrmcommon-next-flush-delay.patch
Patch172: pacemaker-libcrmcommon-avoid-evicting-IPC-client.patch
Patch173: pacemaker-systemd-units-dependency-on-resource-agents-deps.patch
Patch174: pacemaker-libcib-use-after-free-deleting-CIB-connection.patch
Patch175: pacemaker-crmd-clean-up-throttle-memory.patch
Patch176: pacemaker-pengine-guest-node-connection-resources-probed.patch
Patch177: pacemaker-pengine-guest-node-connection-resources-probed-tests.patch
Patch178: pacemaker-pengine-unique-ids-for-meta-guest-connection.patch
Patch179: pacemaker-pengine-unmanage-guest-container-puts-guest-in-maintenance.patch
Patch180: pacemaker-lrmd-verbosity-options-handled-after-crm_log_init.patch
Patch181: bug-1042374_pacemaker-stonith-ng-trigger-on-constraints-added.patch
Patch182: pacemaker-pengine-ensure-remote-connections-available-before-recovery.patch
Patch183: pacemaker-pengine-ensure-remote-connections-available-before-recovery-test.patch
Patch184: pacemaker-pengine-detection-invalid-constraints.patch
Patch185: pacemaker-libpengine-dont-double-score-adding-first-allowed-node.patch
Patch186: pacemaker-libpengine-dont-double-score-adding-first-allowed-node-tests.patch
Patch187: pacemaker-pengine-potential-use-of-NULL.patch
Patch188: pacemaker-pengine-correctly-compare-point.patch
Patch189: pacemaker-pengine-resources-on-remote-nodes-not-restarted-until-necessary.patch
Patch190: pacemaker-pengine-resources-on-remote-nodes-not-restarted-until-necessary-tests.patch
Patch191: pacemaker-pengine-fencing-logging.patch
Patch192: pacemaker-pengine-remote-nodes-fenced-connection-cannot-be-recovered.patch
Patch193: pacemaker-pengine-remote-nodes-fenced-connection-cannot-be-recovered-tests.patch
Patch194: pacemaker-crmd-attribute-write-out-not-needed-with-atomic-attrd.patch
Patch195: pacemaker-attrd-broadcast-local-overrides-of-synced-attributes.patch
Patch196: pacemaker-pengine-fence-unrecoverable-remote-nodes-with-no-resources.patch
Patch197: pacemaker-logging-node-fencing-and-shutdown.patch
Patch198: pacemaker-pengine-fencing-messages.patch
Patch199: bug-1042054_pacemaker-cib-broadcast-pass-acl.patch
Patch200: pacemaker-crmd-DC-update-stonith-fail-count-before-aborting-transition.patch
Patch201: pacemaker-libcrmcluster-spelling-error-message.patch
Patch202: pacemaker-libcib-use-current-values-unpacking-config.patch
Patch203: pacemaker-libcib-correctly-search-for-v2-patchset-changes.patch
Patch204: pacemaker-pengine-not-re-add-node-default-score-for-each-location-constraint.patch
Patch205: pacemaker-pengine-pe_order_implies_first_printed.patch
Patch206: pacemaker-pengine-make-checks-safer.patch
Patch207: pacemaker-crmd-transition-whenever-lose-quorum.patch
Patch208: bug-1058844_pacemaker-iso8601-strftime-fully-populated-struct-tm.patch
Patch209: pacemaker-pengine-unrecoverable-remote-nodes-fenced-no-resources.patch
Patch210: pacemaker-tools-version-option-cibsecret.patch
Patch211: pacemaker-te-dont-bump-counters-action-synapse-invalid.patch
Patch212: pacemaker-cib-reword-trace-message.patch
Patch213: pacemaker-log-spelling-messages-comments.patch
Patch214: bug-1074039_pacemaker-stonith-ng-pcmk_delay_base.patch
Patch215: bug-1074039_pacemaker-documentation-pcmk_delay_base.patch
Patch216: pacemaker-cib-avoid-unnecessary-memory-allocation.patch
Patch217: pacemaker-pengine-start-failure-is-fatal-help.patch
Patch218: pacemaker-crmd-log-correct-feature-set-revision.patch
Patch219: pacemaker-stonith-ng-double-free-pending-ops-in-free_device.patch
Patch220: pacemaker-liblrmd-trace-message-creating-command.patch
Patch221: pacemaker-attrd-improve-log-message.patch
Patch222: pacemaker-attrd-consistent-attr-host-logging.patch
Patch223: pacemaker-tools-memory-leak-use-of-crm_itoa.patch
Patch224: pacemaker-ClusterMon-metadata.patch
Patch225: pacemaker-libcrmcommon-user-lookup-messages.patch
Patch226: pacemaker-libcrmcommon-handle-schema-versions-properly.patch
Patch227: pacemaker-crm_mon-Content-Type-CGI-header-field.patch
Patch228: pacemaker-crm_mon-CGI-bail-out-properly.patch
Patch229: pacemaker-crm_mon-CGI-bail-out-on-suspicious-arguments.patch
Patch230: pacemaker-crm_mon-crm_system_name-no-longer-influenced-with-argv.patch
Patch231: pacemaker-logging-blackbox-on-arithmetic-error.patch
Patch232: pacemaker-pengine-report-fencing-type.patch
Patch233: pacemaker-pengine-retrigger-unfencing-nodes-operations-old-parameters.patch
Patch234: pacemaker-pengine-avoid-fence-loop-for-remote-nodes.patch
Patch235: pacemaker-stonith-ng-fencing-device-reappear-after-reenabling.patch
Patch236: pacemaker-attrd-improve-log-messages.patch
Patch237: pacemaker-attrd-CIB-connection-function-self-contained.patch
Patch238: pacemaker-attrd-accept-connections-after-CIB-connection-active.patch
Patch239: pacemaker-attrd-crmd-erase-attributes-at-attrd-start-up.patch
Patch240: pacemaker-pengine-unfencing-device-change-test.patch
Patch241: bug-1054389_pacemaker-pengine-resource-scores-round-float-weight.patch
Patch242: pacemaker-pengine-re-enable-unrecoverable-remote-fencing.patch
Patch243: pacemaker-pengine-test-remote-connect-interval.patch
Patch244: pacemaker-crmd-eliminate-size-restriction-on-node-state-xpath.patch
Patch245: pacemaker-pengine-only-print-to-stdout-command-line.patch
Patch246: pacemaker-libcrmcommon-pengine-improve-log-messages.patch
Patch247: bug-1053463_pacemaker-remote-resource-returns-set_key-failure.patch
Patch248: pacemaker-stonith-ng-advertise-pcmk_on_action-via-metadata.patch
Patch249: pacemaker-pengine-functionize-common-ordering-tasks.patch
Patch250: pacemaker-pengine-migration-behind-migrating-remote-test.patch
Patch251: pacemaker-pengine-migration-behind-migrating-remote.patch
Patch252: pacemaker-pengine-permanent-master-scores-at-startup.patch
Patch253: pacemaker-pengine-permanent-master-scores-at-startup-tests-1.patch
Patch254: pacemaker-pengine-detect-proper-clone-name-at-startup.patch
Patch255: pacemaker-pengine-permanent-master-scores-at-startup-tests-2.patch
Patch256: pacemaker-pengine-master-score-startup-test.patch
Patch257: pacemaker-validate-PCMK_remote_port.patch
Patch258: pacemaker-crmd-avoid-assert-LRM-query-fails.patch
Patch259: pacemaker-crmd-memory-leak-node-state-unknown.patch
Patch260: pacemaker-libcrmservices-avoid-assert-HB-resource-with-no-parameters.patch
Patch261: pacemaker-pengine-spelling-corrections.patch
Patch262: pacemaker-attrd-improve-update-messages.patch
Patch263: pacemaker-crm_snprintf_offset-like-parts.patch
Patch264: pacemaker-libcrmcommon-possible-infloop-in-buffer_print.patch
Patch265: pacemaker-pengine-sprintf-snprintf.patch
Patch266: pacemaker-crm_resource-memleak.patch
Patch267: pacemaker-right-size-for-string-buffer-fake_transition.patch
Patch268: pacemaker-handle-PID-string-properly.patch
Patch269: pacemaker-snprintf-use-sizeof.patch
Patch270: pacemaker-snprintf-correct-signedness-format-specifiers.patch
Patch271: pacemaker-prevent-format-truncation.patch
Patch272: pacemaker-attrd-log-messages-clarity.patch
Patch273: pacemaker-reduce-verbosity-developer-logging.patch
Patch274: pacemaker-attrd-log-peer-loss.patch
Patch275: pacemaker-ClusterMon-update-parameter.patch
Patch276: pacemaker-libpe_status-validate-no-quorum-policy=suicide.patch
Patch277: pacemaker-crm_resource-no-command.patch
Patch278: pacemaker-pengine-use-of-NULL-unpacking-tickets.patch
Patch279: pacemaker-pengine-loss-policy-fence-to-stop-if-no-fencing.patch
Patch280: pacemaker-libpe_status-ability-log-warning-once.patch
Patch281: pacemaker-libpe_status-log-startup-fencing-value.patch
Patch282: pacemaker-libpe_status-detect-when-nodes-should-suicide.patch
Patch283: pacemaker-pengine-tests-no-quorum-policy=suicide.patch
Patch284: bug-950128_pacemaker-crm_resource-help.patch
Patch285: pacemaker-libcrmcommon-functions-agent-specifications.patch
Patch286: pacemaker-crm_resource-show-metadata-error-messages.patch
Patch287: pacemaker-tools-update-regression-test-crm_resource.patch
Patch288: pacemaker-crm_resource-without-arguments.patch
Patch289: pacemaker-tools-check-sscanf-return-parsing-failed-op-list.patch
Patch290: pacemaker-libcrmcommon-check-sscanf-result-parsing-schema-version.patch
Patch291: pacemaker-tools-break-statement-attrd_updater.patch
Patch292: pacemaker-crm_resource-data-set-initialized.patch
Patch293: pacemaker-crm_mon-error-exit-child-execl-should-return.patch
Patch294: pacemaker-libcommon-erase-old-exit_reason.patch
Patch295: pacemaker-tools-test-exit-reason.patch
Patch296: pacemaker-libcrmservice-follow-LSB-header-block.patch
Patch297: pacemaker-libcrmservice-parse-LSB-long-description.patch
Patch298: pacemaker-libcrmcluster-error-checking-updating-node-name.patch
Patch299: bug-950128_pacemaker-crm_resource-lifetime.patch
Patch300: pacemaker-libcrmservice-list-systemd-unit-files.patch
Patch301: pacemaker-libcrmservice-avoid-infinite-loop-on-bad-DBus-reply.patch
Patch302: pacemaker-pengine-test-remote-connection-unrecoverable.patch
Patch303: pacemaker-libcrmcommon-crm_alpha_sort.patch
Patch304: pacemaker-libcrmservice-list-systemd-agents-alphabetically.patch
Patch305: pacemaker-pengine-dont-reload-and-restart-in-same-transition.patch
Patch306: pacemaker-pengine-test-reload-becomes-restart.patch
Patch307: pacemaker-tools-suppress-invalid-error-message-crm_resource-force.patch
Patch308: pacemaker-tools-show-RAs-debug-verbose-mode-crm_resource-force.patch
Patch309: pacemaker-tools-trace-log-level-for-RAs.patch
Patch310: pacemaker-tools-descriptive-messages-for-OCF-exit-code.patch
Patch311: bug-1009076_pacemaker-lrmd-dont-reject-protocol-1.0-clients.patch
Patch312: pacemaker-pengine-messages-assigning-resources-to-nodes.patch
Patch313: pacemaker-pengine-dont-keep-unique-instances-on-same-node.patch
Patch314: pacemaker-rebalance-unique-clones-test.patch
Patch315: pacemaker-lrmd-TLS-listener-messages.patch
Patch316: pacemaker-pacemaker_remote-warn-if-TLS-key-cant-be-read-at-start-up.patch
Patch317: pacemaker-improve-remote-connection-messages.patch
Patch318: pacemaker-libcrmcommon-async-connection-callback-negative-error-codes.patch
Patch319: pacemaker-libcrmcommon-meaningful-error-codes-to-connection-callbacks.patch
Patch320: pacemaker-report-meaningful-async-connection-errors.patch
Patch321: pacemaker-crmd-hard-error-if-remote-start-fails-missing-key.patch
Patch322: pacemaker-fencing-stonith_admin-help.patch
Patch323: pacemaker-fencing-memory-leak-stonith_admin-env.patch
Patch324: pacemaker-fencing-dont-print-event-twice-stonith_admin-verbose.patch
Patch325: pacemaker-set-meta_timeout-env-crm_resource-force-executes-RA-1.patch
Patch326: pacemaker-set-meta_timeout-env-crm_resource-force-executes-RA-2.patch
Patch327: pacemaker-libcrmcommon-lower-watchdog-messages.patch
Patch328: pacemaker-meaningful-error-codes-sending-remote-messages.patch
Patch329: pacemaker-messages-failed-remote-sends.patch
Patch330: pacemaker-pengine-if-ignoring-failure-also-migration-threshold.patch
Patch331: pacemaker-pengine-if-ignoring-failure-also-migration-threshold-test.patch
Patch332: pacemaker-crm_resource-cleanup-for-saved-configuration.patch
Patch333: pacemaker-crm_resource-operate-anonymous-clones-in-unknown-states.patch
Patch334: pacemaker-pengine-information-connection-resource-state.patch
Patch335: pacemaker-crm_resource-prevent-disconnection-from-crmd-during-cleanup.patch
Patch336: pacemaker-pengine-send-transition-graph-via-disk-if-too-big.patch
Patch337: pacemaker-pengine-exclude-resources-and-nodes-from-symmetric_default.patch
Patch338: pacemaker-crmd-scale-timeouts-with-number-of-remotes-too.patch
Patch339: pacemaker-pengine-bare-metal-remotes-can-run-resources-and-must-be-probed.patch
Patch340: pacemaker-crmd-scale-all-cib-operation-timeouts.patch
Patch341: pacemaker-pengine-flag-resources-acting-as-remote-nodes.patch
Patch342: pacemaker-pengine-resources-allowed-to-stop-before-state-known-everywhere.patch
Patch343: pacemaker-pengine-resources-allowed-to-stop-before-state-known-everywhere-tests.patch
Patch344: pacemaker-crm_resource-wait-for-all-messages-before-exiting.patch
Patch345: pacemaker-pengine-allow-all-resources-to-stop-prior-to-probes-completing.patch
Patch346: pacemaker-pengine-improved-logging-of-reasons-for-stop-restart-actions.patch
Patch347: pacemaker-pengine-improved-logging-of-reasons-for-stop-restart-actions-tests.patch
Patch348: pacemaker-test-update-regression-test-outputs.patch
Patch349: pacemaker-tools-clean-up-dry-run-correctly.patch
Patch350: pacemaker-tools-dont-reinvent-glib-wheel.patch
Patch351: pacemaker-pengine-memory-leak-writing-graph-to-file.patch
Patch352: pacemaker-pengine-Pacemaker-Remote-terminology.patch
#Patch353: pacemaker-tools-dont-expect-reply-to-failed-send.patch
Patch354: pacemaker-portability-difference-of-time_t-values-by-difftime.patch
Patch355: pacemaker-ifspeed-typo-overridden.patch
Patch356: pacemaker-tools-correct-OCF_RESOURCE_INSTANCE-crm_resource-force-execute-1.patch
Patch357: pacemaker-tools-correct-OCF_RESOURCE_INSTANCE-crm_resource-force-execute-2.patch
Patch358: bug-1066710_pacemaker-pacemaker.service-TasksMax=infinity.patch
Patch359: pacemaker-pengine-tools-avoid-unnecessary-use-of-pe_find_current.patch
Patch360: bug-1066710_pacemaker-pacemaker_remote.service-TasksMax=infinity.patch
Patch361: pacemaker-log-pengine-monitors-rescheduled.patch
Patch362: pacemaker-tools-use-g_main_loop_is_running-properly.patch
Patch363: pacemaker-tools-use-uber-parent-for-crm_resource-a-A.patch
Patch364: pacemaker-tools-use-proper-variable-in-message-from-crm_resource-g.patch
Patch365: pacemaker-attrd-stonithd-efficient-regular-expression-parsing.patch
Patch366: bug-1066710_pacemaker-systemd-unit-files-enable-TasksMax=infinity.patch
Patch367: pacemaker-attrd-node-name-broadcast-at-start-up.patch
Patch368: pacemaker-pengine-allowed-nodes-considered-when-ordering-resource-startup.patch
Patch369: pacemaker-remote-connection-resources-require-only-quorum.patch
Patch370: pacemaker-pengine-stop-occur-after-stopped-remote-connections-brought-up.patch
Patch371: pacemaker-pengine-correct-mispelled-constant.patch
Patch372: pacemaker-libpe_status-limit-resource-type-check-to-primitives.patch
Patch373: pacemaker-lrmd-use-most-recent-remote-proxy.patch
Patch374: pacemaker-libpe_status-precedence-of-operation-meta-attributes.patch
Patch375: pacemaker-libpe_status-correct-default-timeout-for-probes.patch
Patch376: pacemaker-pengine-validate-function-arguments.patch
Patch377: pacemaker-libcrmservice-memory-leak-on-DBus-error.patch
Patch378: pacemaker-systemd-unit-files-restore-DBus-dependency.patch
Patch379: pacemaker-attrd-memory-leak-at-start-up.patch
Patch380: pacemaker-libcrmcluster-crm_strdup_printf-instead-of-calloc.patch
Patch381: pacemaker-tools-avoid-using-deprecated-options.patch
Patch382: pacemaker-tools-improve-crm_master-help-and-error-messages.patch
Patch383: pacemaker-tools-improve-crm_master-option-handling.patch
Patch384: pacemaker-tools-improve-crm_standby-help-and-error-messages.patch
Patch385: pacemaker-tools-improve-crm_standby-option-handling.patch
Patch386: pacemaker-cts-StartCmd.patch
Patch387: pacemaker-libcrmcommon-tools-improve-XML-write-error-handling.patch
Patch388: pacemaker-libcluster-libcrmcommon-improve-BZ2-error-messages.patch
Patch389: pacemaker-tools-improve-help-text.patch
Patch390: pacemaker-libpe_status-recover-after-failed-demote-when-appropriate.patch
Patch391: pacemaker-PE-add-tests-for-recovery-after-failed-demote.patch
Patch392: pacemaker-rhbz#1519812-Prevent-notify-actions-from-causing---wait-to-hang.patch
Patch393: pacemaker-crmd-quorum-gain-should-always-cause-new-transition.patch
Patch394: pacemaker-libcrmservice-pacemakerd-improve-privilege-dropping.patch
Patch395: pacemaker-attrd-pacemakerd-libcrmcommon-make-Exiting-last-message.patch
Patch396: pacemaker-libcrmcommon-use-tmp-when-creating-temporary-XML-file.patch
Patch397: pacemaker-attrd-Synchronize-attributes-held-only-on-own-node.patch
Patch398: pacemaker-tools-already-latest-schema-is-not-failure-for-cibadmin-upgrade.patch
Patch399: pacemaker-crmd-always-log-unmatched-down-events-at-least-at-debug-level.patch
Patch400: pacemaker-crmd-log-transition-ID-when-aborting.patch
Patch401: bug-1082883_pacemaker-Install-etcpacemaker-directory-for-storing-authkey-file.patch
Patch402: pacemaker-tools-warn-if-crm_resource---wait-called-in-mixed-version-cluster.patch
Patch403: pacemaker-libcrmcommon-avoid-memory-leak-when-schema-transform-not-found.patch
Patch404: pacemaker-crmd-validate-CIB-diffs-better.patch
Patch405: pacemaker-crmd-dont-abort-for-v2-diff-LRM-refresh-if-actions-pending.patch
Patch406: pacemaker-crmd-dont-need-return-value-from-process_graph_event.patch
Patch407: pacemaker-crmd-functionize-pieces-of-do_lrm_invoke.patch
Patch408: pacemaker-crmd-match-only-executed-down-events.patch
Patch409: pacemaker-crmd-return-rich-error-codes-from-get_lrm_resource.patch
Patch410: pacemaker-crmd-improve-lrmd-failure-handling.patch
Patch411: pacemaker-crmd-avoid-core-dump-if-remote-connection-doesnt-exist.patch
Patch412: pacemaker-crmd-always-assert-when-operation-cant-be-created.patch
Patch413: pacemaker-crmd-functionize-setting-fake-operation-status.patch
Patch414: pacemaker-liblrmd-add-function-to-create-resource-info-structure.patch
Patch415: pacemaker-crmd-always-write-faked-failures-to-CIB-whenever-possible.patch
Patch416: pacemaker-libcrmcommon-add-function-to-get-text-equivalent-of-client-type.patch
Patch417: pacemaker-crmd-liblrmd-libcrmcommon-improve-remote-node-disconnection-logs.patch
Patch418: pacemaker-systemd-update-documentation-link-in-unit-file.patch
Patch419: bsc#1085515-pacemaker-pengine-Avoid-potential-use-of-NULL-in-unpack_simple_rsc_order.patch
Patch420: bsc#1085515-pacemaker-pengine-symmetrical-defaults-to-false-for-serialize-orders.patch
Patch421: bsc#1085515-pacemaker-Pacemaker-Explained-symmetrical-defaults-to-false-for-serialize-orders.patch
Patch422: bsc#1094208-0001-Fix-controld-able-to-manually-confirm-unseen-nodes-a.patch
Patch423: bsc#1094208-0002-Refactor-fenced-Handle-fencing-requested-with-nodeid.patch
Patch424: bsc#1121272-0001-Test-cts-simulate-failure-of-pacemaker_remoted-by-fr.patch
Patch425: bsc#1121272-0002-Test-cts-resume-any-possibly-frozen-pacemaker_remote.patch
Patch426: bsc#1121272-0003-Test-cts-clear-constraints-on-cluster-nodes.patch
Patch427: 0001-Test-CTS-lower-remote-connection-failure-detection-t.patch
Patch428: 0002-Test-CTS-ignore-monitor-failures-when-testing-remote.patch
Patch429: 0001-Test-cts-set-default-number-of-iterations-to-1.patch
Patch430: 0001-Test-cts-use-bash-in-the-DummySD.service-file.patch
Patch431: bsc#1121808-0001-Test-cts-exec-still-run-the-tests-for-the-other-reso-1.1.patch
Patch432: 0001-Test-cts-service-counts-as-enabled-only-if-it-s-expl-1.1.patch
Patch433: 0002-Test-cts-temporarily-disable-any-enabled-cluster-ser-1.1.patch
Patch434: bsc#1114840-0001-Test-CTS-don-t-require-nodes-to-be-specified-if-only-1.1.patch
Patch435: bsc#1117934-0000-Low-libcrmcommon-add-new-internal-function-for-strin.patch
Patch436: bsc#1117934-0001-Fix-scheduler-cl-5301-respect-order-constraints-when-1.1.patch
Patch437: bsc#1117934-0002-Test-scheduler-cl-5301-respect-order-constraints-whe-1.1.patch
Patch438: bsc#1117934-0003-Test-scheduler-cl-5301-respect-order-constraints-whe-1.1.patch
Patch439: bsc#1117381-0001-High-crmd-delete-resource-from-lrmd-when-appropriate.patch
Patch440: bsc#1128772-0001-Fix-libcrmcluster-avoid-use-of-NULL-when-searching-f.patch
Patch441: bsc#1136712-0001-Low-contoller-scheduler-guard-hash-table-deletes-1.1.patch
Patch442: bsc#1127716-0001-Fix-libcrmcommon-correctly-apply-XML-diffs-with-mult-1.1.patch
Patch443: bsc#1127716-0002-Fix-libcrmcommon-avoid-possible-use-of-NULL-when-app-1.1.patch
Patch444: bsc#1127716-0003-Fix-libcrmcommon-return-error-when-applying-XML-diff-1.1.patch
Patch445: bsc#1133866-0001-Refactor-libcrmcommon-improve-parse_op_key-efficienc-1.1.patch
Patch446: bsc#1133866-0002-Log-controller-improve-failed-recurring-action-messa-1.1.patch
Patch447: bsc#1133866-0003-Fix-controller-confirm-cancel-of-failed-monitors-1.1.patch
Patch448: bsc#1130122-0001-Fix-scheduler-wait-for-probe-actions-to-complete-to--1.1.patch
Patch449: bsc#1130122-0002-Test-scheduler-wait-for-probe-actions-to-complete-to-1.1.patch
Patch450: bsc#1131353-bsc#1131356-0002-High-pacemakerd-vs.-IPC-procfs-confused-deputy-authe-1.1.patch
Patch451: bsc#1131353-bsc#1131356-0003-High-pacemakerd-vs.-IPC-procfs-confused-deputy-authe-1.1.patch
Patch452: bsc#1131353-bsc#1131356-0004-High-pacemakerd-vs.-IPC-procfs-confused-deputy-authe-1.1.patch
Patch453: bsc#1131353-bsc#1131356-0005-High-pacemakerd-vs.-IPC-procfs-confused-deputy-authe-1.1.patch
Patch454: bsc#1131353-bsc#1131356-0006-High-pacemakerd-vs.-IPC-procfs-confused-deputy-authe-1.1.patch
Patch455: bsc#1131353-bsc#1131356-0007-Med-controld-fix-possible-NULL-pointer-dereference-1.1.patch
Patch456: bsc#1131353-bsc#1131356-0008-Fix-libcrmcommon-avoid-use-of-NULL-when-checking-whe-1.1.patch
Patch457: bsc#1131353-bsc#1131356-0009-Low-libcrmcommon-return-proper-code-if-testing-pid-i-1.1.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: pacemaker-ticket-support = 2.0
Conflicts: heartbeat < 3.0
Conflicts: libheartbeat2 < 3.0.0
Requires: %{name}-cli = %{version}-%{release}
Requires: libpacemaker3 = %{version}-%{release}
%if %{enable_lib_cluster_pkg}
Requires: libpacemaker3-cluster = %{version}-%{release}
%endif
Requires: psmisc
Requires: resource-agents
Recommends: crmsh
Recommends: fence-agents
Recommends: libdlm
Recommends: sbd
Suggests: graphviz
%if %{defined systemd_requires}
%systemd_requires
%endif
# Pacemaker targets compatibility with python 2.6+ and 3.2+
Requires: python >= 2.6
BuildRequires: python-devel >= 2.6
# Pacemaker requires a minimum libqb functionality
Requires: libqb >= 0.13.0
BuildRequires: libqb-devel >= 0.13.0
# Basics required for the build (even if usually satisfied through other BRs)
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: grep
BuildRequires: sed
# Required for core functionality
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc
BuildRequires: libtool
BuildRequires: libtool-ltdl-devel
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig
#BuildRequires: bzip2-devel
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(glib-2.0)
# Required for agent_config.h which specifies the correct scratch directory
BuildRequires: resource-agents
# Enables optional functionality
%if 0%{?suse_version} > 1100
BuildRequires: docbook-xsl-stylesheets
%else
BuildRequires: docbook-style-xsl
%endif
BuildRequires: help2man
%if 0%{?suse_version} > 1210
BuildRequires: libgnutls-devel
%else
BuildRequires: gnutls-devel
%endif
BuildRequires: ncurses-devel
BuildRequires: pkgconfig(dbus-1)
#%if %{systemd_native}
BuildRequires: pkgconfig(systemd)
#%endif
%if %{with cman} && %{cman_native}
BuildRequires: clusterlib-devel
# pacemaker initscript: cman initscript, fence_tool (+ some soft-dependencies)
# "post" scriptlet: ccs_update_schema
Requires: cman
%endif
%if %{with_corosync_support}
Requires: corosync >= 2.0.0
#BuildRequires: corosynclib-devel >= 2.0.0
BuildRequires: pkgconfig(corosync) >= 2.0.0
%endif
%if %{with_heartbeat_support}
BuildRequires: heartbeat-devel
Requires: heartbeat
%endif
%if %{with stonithd}
%if 0%{?suse_version}
BuildRequires: libglue-devel
%else
BuildRequires: cluster-glue-libs-devel
%endif
%endif
## (note no avoiding effect when building through non-customized mock)
#%if !%{bleeding}
%if !0%{?bleeding}
%if %{with doc}
BuildRequires: asciidoc
BuildRequires: inkscape
BuildRequires: publican
%endif
%endif
%if %{with_snmp}
BuildRequires: net-snmp-devel
%endif
%if %{with_esmtp}
BuildRequires: libesmtp-devel
%endif
%if %{with_regression_tests}
BuildRequires: procps
BuildRequires: python-curses
BuildRequires: python-xml
%endif
%description
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
It supports more than 16 node clusters with significant capabilities
for managing resources and dependencies.
It will run scripts at initialization, when machines go up or down,
when related resources fail and can be configured to periodically check
resource health.
Available rpmbuild rebuild options:
--with(out) : cman coverage doc stonithd pre_release profiling upstart_job
%package cli
Summary: Command line tools for controlling Pacemaker clusters
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
Requires: logrotate
Requires: perl-TimeDate
%description cli
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
The %{name}-cli package contains command line tools that can be used
to query and control the cluster from machines that may, or may not,
be part of the cluster.
%package -n libpacemaker3
Summary: Core Pacemaker libraries
Group: Productivity/Clustering/HA
Requires(pre): shadow
%description -n libpacemaker3
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
The libpacemaker3 package contains shared libraries needed for cluster
nodes and those just running the CLI tools.
%if %{enable_lib_cluster_pkg}
%package -n libpacemaker3-cluster
Summary: Cluster Libraries used by Pacemaker
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
%description -n libpacemaker3-cluster
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
The libpacemaker3-cluster package contains cluster-aware shared
libraries needed for nodes that will form part of the cluster nodes.
%endif
%package remote
Summary: Pacemaker remote daemon for non-cluster nodes
Group: Productivity/Clustering/HA
Requires: %{name}-cli = %{version}-%{release}
Requires: libpacemaker3 = %{version}-%{release}
Requires: resource-agents
%if %{defined systemd_requires}
%systemd_requires
%endif
%description remote
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
The %{name}-remote package contains the Pacemaker Remote daemon
which is capable of extending pacemaker functionality to remote
nodes not running the full corosync/cluster stack.
%package -n libpacemaker-devel
Summary: Pacemaker development package
Group: Development/Libraries/C and C++
Requires: %{name}-cts = %{version}-%{release}
Requires: glib2-devel
Requires: libpacemaker3 = %{version}-%{release}
%if %{enable_lib_cluster_pkg}
Requires: libpacemaker3-cluster = %{version}-%{release}
%endif
Requires: libqb-devel
Requires: libtool-ltdl-devel
Requires: libuuid-devel
Requires: libxml2-devel
Requires: libxslt-devel
Requires: pkgconfig
#Requires: bzip2-devel
Requires: pkgconfig(bzip2)
#Requires: corosynclib-devel >= 2.0.0
Requires: pkgconfig(corosync) >= 2.0.0
%if %with_regression_tests
# For the regression tests, we can run them only if all pacemaker
# packages are installed, so we pull that in here for the regression
# builds; this is supposed to be disabled for shipping code.
Requires: pacemaker
%endif
%description -n libpacemaker-devel
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
The libpacemaker-devel package contains headers and shared libraries
for developing tools for Pacemaker.
# NOTE: can be noarch if lrmd_test is moved to another subpackage
%package cts
Summary: Test framework for cluster-related technologies like Pacemaker
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
Requires: python >= 2.6
# systemd python bindings are separate package in some distros
%if %{defined systemd_requires}
%if 0%{?fedora} > 22
Requires: python2-systemd
%else
%if 0%{?fedora} > 20 || 0%{?rhel} > 6
Requires: systemd-python
%else
#Requires: python-systemd
Recommends: python-systemd
%endif
%endif
%endif
%description cts
Test framework for cluster-related technologies like Pacemaker
%if %{with doc}
%package doc
Summary: Documentation for Pacemaker
Group: Productivity/Clustering/HA
BuildArch: noarch
%description doc
Documentation for Pacemaker.
Pacemaker is an advanced, scalable High-Availability cluster resource
manager.
%endif
%prep
#%setup -q -n %{name}-%{commit}
%setup -q -n %{name}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch77 -p1
%patch78 -p1
%patch79 -p1
%patch80 -p1
%patch81 -p1
%patch82 -p1
%patch83 -p1
%patch84 -p1
%patch85 -p1
%patch86 -p1
%patch87 -p1
%patch88 -p1
%patch89 -p1
%patch90 -p1
%patch91 -p1
%patch92 -p1
%patch93 -p1
%patch94 -p1
%patch95 -p1
%patch96 -p1
%patch97 -p1
%patch98 -p1
%patch99 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1
%patch108 -p1
%patch109 -p1
%patch110 -p1
%patch111 -p1
%patch112 -p1
%patch113 -p1
%patch114 -p1
%patch115 -p1
%patch116 -p1
%patch117 -p1
%patch118 -p1
%patch119 -p1
%patch120 -p1
%patch121 -p1
%patch122 -p1
%patch123 -p1
%patch124 -p1
%patch125 -p1
%patch126 -p1
%patch127 -p1
%patch128 -p1
%patch129 -p1
%patch130 -p1
%patch131 -p1
%patch132 -p1
%patch133 -p1
%patch134 -p1
%patch135 -p1
%patch136 -p1
%patch137 -p1
%patch138 -p1
%patch139 -p1
%patch140 -p1
%patch141 -p1
%patch142 -p1
%patch143 -p1
%patch144 -p1
%patch145 -p1
%patch146 -p1
%patch147 -p1
%patch148 -p1
%patch149 -p1
%patch150 -p1
%patch151 -p1
%patch152 -p1
%patch153 -p1
%patch154 -p1
%patch155 -p1
%patch156 -p1
%patch157 -p1
%patch158 -p1
%patch159 -p1
%patch160 -p1
%patch161 -p1
%patch162 -p1
%patch163 -p1
%patch164 -p1
%patch165 -p1
%patch166 -p1
%patch167 -p1
%patch168 -p1
%patch169 -p1
%patch170 -p1
%patch171 -p1
%patch172 -p1
%patch173 -p1
%patch174 -p1
%patch175 -p1
%patch176 -p1
%patch177 -p1
%patch178 -p1
%patch179 -p1
%patch180 -p1
%patch181 -p1
%patch182 -p1
%patch183 -p1
%patch184 -p1
%patch185 -p1
%patch186 -p1
%patch187 -p1
%patch188 -p1
%patch189 -p1
%patch190 -p1
%patch191 -p1
%patch192 -p1
%patch193 -p1
%patch194 -p1
%patch195 -p1
%patch196 -p1
%patch197 -p1
%patch198 -p1
%patch199 -p1
%patch200 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch207 -p1
%patch208 -p1
%patch209 -p1
%patch210 -p1
%patch211 -p1
%patch212 -p1
%patch213 -p1
%patch214 -p1
%patch215 -p1
%patch216 -p1
%patch217 -p1
%patch218 -p1
%patch219 -p1
%patch220 -p1
%patch221 -p1
%patch222 -p1
%patch223 -p1
%patch224 -p1
%patch225 -p1
%patch226 -p1
%patch227 -p1
%patch228 -p1
%patch229 -p1
%patch230 -p1
%patch231 -p1
%patch232 -p1
%patch233 -p1
%patch234 -p1
%patch235 -p1
%patch236 -p1
%patch237 -p1
%patch238 -p1
%patch239 -p1
%patch240 -p1
%patch241 -p1
%patch242 -p1
%patch243 -p1
%patch244 -p1
%patch245 -p1
%patch246 -p1
%patch247 -p1
%patch248 -p1
%patch249 -p1
%patch250 -p1
%patch251 -p1
%patch252 -p1
%patch253 -p1
%patch254 -p1
%patch255 -p1
%patch256 -p1
%patch257 -p1
%patch258 -p1
%patch259 -p1
%patch260 -p1
%patch261 -p1
%patch262 -p1
%patch263 -p1
%patch264 -p1
%patch265 -p1
%patch266 -p1
%patch267 -p1
%patch268 -p1
%patch269 -p1
%patch270 -p1
%patch271 -p1
%patch272 -p1
%patch273 -p1
%patch274 -p1
%patch275 -p1
%patch276 -p1
%patch277 -p1
%patch278 -p1
%patch279 -p1
%patch280 -p1
%patch281 -p1
%patch282 -p1
%patch283 -p1
%patch284 -p1
%patch285 -p1
%patch286 -p1
%patch287 -p1
%patch288 -p1
%patch289 -p1
%patch290 -p1
%patch291 -p1
%patch292 -p1
%patch293 -p1
%patch294 -p1
%patch295 -p1
%patch296 -p1
%patch297 -p1
%patch298 -p1
%patch299 -p1
%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1
%patch305 -p1
%patch306 -p1
%patch307 -p1
%patch308 -p1
%patch309 -p1
%patch310 -p1
%patch311 -p1
%patch312 -p1
%patch313 -p1
%patch314 -p1
%patch315 -p1
%patch316 -p1
%patch317 -p1
%patch318 -p1
%patch319 -p1
%patch320 -p1
%patch321 -p1
%patch322 -p1
%patch323 -p1
%patch324 -p1
%patch325 -p1
%patch326 -p1
%patch327 -p1
%patch328 -p1
%patch329 -p1
%patch330 -p1
%patch331 -p1
%patch332 -p1
%patch333 -p1
%patch334 -p1
%patch335 -p1
%patch336 -p1
%patch337 -p1
%patch338 -p1
%patch339 -p1
%patch340 -p1
%patch341 -p1
%patch342 -p1
%patch343 -p1
%patch344 -p1
%patch345 -p1
%patch346 -p1
%patch347 -p1
%patch348 -p1
%patch349 -p1
%patch350 -p1
%patch351 -p1
%patch352 -p1
#%patch353 -p1
%patch354 -p1
%patch355 -p1
%patch356 -p1
%patch357 -p1
%patch358 -p1
%patch359 -p1
%patch360 -p1
%patch361 -p1
%patch362 -p1
%patch363 -p1
%patch364 -p1
%patch365 -p1
%patch366 -p1
%patch367 -p1
%patch368 -p1
%patch369 -p1
%patch370 -p1
%patch371 -p1
%patch372 -p1
%patch373 -p1
%patch374 -p1
%patch375 -p1
%patch376 -p1
%patch377 -p1
%patch378 -p1
%patch379 -p1
%patch380 -p1
%patch381 -p1
%patch382 -p1
%patch383 -p1
%patch384 -p1
%patch385 -p1
%patch386 -p1
%patch387 -p1
%patch388 -p1
%patch389 -p1
%patch390 -p1
%patch391 -p1
%patch392 -p1
%patch393 -p1
%patch394 -p1
%patch395 -p1
%patch396 -p1
%patch397 -p1
%patch398 -p1
%patch399 -p1
%patch400 -p1
%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch404 -p1
%patch405 -p1
%patch406 -p1
%patch407 -p1
%patch408 -p1
%patch409 -p1
%patch410 -p1
%patch411 -p1
%patch412 -p1
%patch413 -p1
%patch414 -p1
%patch415 -p1
%patch416 -p1
%patch417 -p1
%patch418 -p1
%patch419 -p1
%patch420 -p1
%patch421 -p1
%patch422 -p1
%patch423 -p1
%patch424 -p1
%patch425 -p1
%patch426 -p1
%patch427 -p1
%patch428 -p1
%patch429 -p1
%patch430 -p1
%patch431 -p1
%patch432 -p1
%patch433 -p1
%patch434 -p1
%patch435 -p1
%patch436 -p1
%patch437 -p1
%patch438 -p1
%patch439 -p1
%patch440 -p1
%patch441 -p1
%patch442 -p1
%patch443 -p1
%patch444 -p1
%patch445 -p1
%patch446 -p1
%patch447 -p1
%patch448 -p1
%patch449 -p1
%patch450 -p1
%patch451 -p1
%patch452 -p1
%patch453 -p1
%patch454 -p1
%patch455 -p1
%patch456 -p1
%patch457 -p1
# Force the local time
#
# 'git' sets the file date to the date of the last commit.
# This can result in files having been created in the future
# when building on machines in timezones 'behind' the one the
# commit occurred in - which seriously confuses 'make'
find . -exec touch \{\} \;
%build
# Early versions of autotools (e.g. RHEL <= 5) do not support --docdir
export docdir=%{pcmk_docdir}
./autogen.sh
%{configure} \
%{?with_profiling: --with-profiling} \
%{?with_coverage: --with-coverage} \
%{!?with_cman: --without-cman} \
%if !%{with_heartbeat_support}
--without-heartbeat \
%endif
%if %{with_nagios}
--with-nagios=true \
%endif
%if %{with_snmp}
--with-snmp=true \
%endif
%if %{with_esmtp}
--with-esmtp=true \
%endif
%if %{with_acl}
--with-acl=true \
%endif
%if %{with_cibsecrets}
--with-cibsecrets=true \
%endif
%if !%{enable_fatal_warnings}
--enable-fatal-warnings=no \
%endif
%{!?with_doc: --with-brand=} \
--with-initdir=%{_initrddir} \
--localstatedir=%{_var} \
--with-version=%{version}-%{release}
%if 0%{?suse_version} >= 1200
# Fedora handles rpath removal automagically
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%endif
make %{_smp_mflags} V=1 all
%check
{ pengine/regression.sh --run one-or-more-unrunnnable-instances \
&& tools/regression.sh \
&& touch .CHECKED
} 2>&1 | sed 's/[fF]ail/faiil/g' # prevent false positives in rpmlint
[ -f .CHECKED ] && rm -f -- .CHECKED
%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} docdir=%{pcmk_docdir} V=1 install
#mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
install -d -m755 %{buildroot}%{_fillupdir}
#install -m 644 mcp/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker
install -m 644 mcp/pacemaker.sysconfig %{buildroot}%{_fillupdir}/sysconfig.pacemaker
#install -m 644 tools/crm_mon.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/crm_mon
install -m 644 tools/crm_mon.sysconfig %{buildroot}%{_fillupdir}/sysconfig.crm_mon
%if %{with upstart_job}
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/init
install -m 644 mcp/pacemaker.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.conf
install -m 644 mcp/pacemaker.combined.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.combined.conf
install -m 644 tools/crm_mon.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/crm_mon.conf
%endif
# Scripts that should be executable
chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/CTSlab.py
# These are not actually scripts
find %{buildroot} -name '*.xml' -type f -print0 | xargs -0 chmod a-x
# Don't package static libs
find %{buildroot} -name '*.a' -type f -print0 | xargs -0 rm -f
find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f
# Don't ship init scripts for systemd based platforms
%if %{defined _unitdir}
rm -f %{buildroot}/%{_initrddir}/pacemaker
rm -f %{buildroot}/%{_initrddir}/pacemaker_remote
ln -s service %{buildroot}%{_sbindir}/rcpacemaker
ln -s service %{buildroot}%{_sbindir}/rcpacemaker_remote
ln -s service %{buildroot}%{_sbindir}/rccrm_mon
%endif
mv %{buildroot}%{_sbindir}/crm_report %{buildroot}%{_sbindir}/crm_report.pacemaker
install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/crm_report
# Don't ship fence_pcmk where it has no use
%if %{without cman}
rm -f %{buildroot}/%{_sbindir}/fence_pcmk
%endif
%if %{with coverage}
GCOV_BASE=%{buildroot}/%{_var}/lib/pacemaker/gcov
mkdir -p $GCOV_BASE
find . -name '*.gcno' -type f | while read F ; do
D=`dirname $F`
mkdir -p ${GCOV_BASE}/$D
cp $F ${GCOV_BASE}/$D
done
%endif
%pre
%if %{defined _unitdir}
%service_add_pre pacemaker.service
%endif
%post
%if %{defined _unitdir}
#%systemd_post pacemaker.service
%service_add_post pacemaker.service
%else
/sbin/chkconfig --add pacemaker || :
%if %{with cman} && %{cman_native}
# make fence_pcmk in cluster.conf valid instantly otherwise tools like ccs may
# choke (until schema gets auto-regenerated on the next start of cluster),
# per the protocol shared with other packages contributing to cluster.rng
/usr/sbin/ccs_update_schema >/dev/null 2>&1 || :
%endif
%endif
%preun
%if %{defined _unitdir}
#%systemd_preun pacemaker.service
%service_del_preun pacemaker.service
%else
/sbin/service pacemaker stop >/dev/null 2>&1 || :
if [ $1 -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker || :
fi
%endif
%postun
%if %{defined _unitdir}
#%systemd_postun_with_restart pacemaker.service
%service_del_postun pacemaker.service
%endif
%pre remote
%if %{defined _unitdir}
%service_add_pre pacemaker_remote.service
%endif
%post remote
%if %{defined _unitdir}
#%systemd_post pacemaker_remote.service
%service_add_post pacemaker_remote.service
%else
/sbin/chkconfig --add pacemaker_remote || :
%endif
%preun remote
%if %{defined _unitdir}
#%systemd_preun pacemaker_remote.service
%service_del_preun pacemaker_remote.service
%else
/sbin/service pacemaker_remote stop >/dev/null 2>&1 || :
if [ $1 -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker_remote || :
fi
%endif
%postun remote
%if %{defined _unitdir}
#%systemd_postun_with_restart pacemaker_remote.service
%service_del_postun pacemaker_remote.service
%endif
%pre cli
%if %{defined _unitdir}
%service_add_pre crm_mon.service
%endif
%post cli
if [ ! -e %{_sysconfdir}/sysconfig/pacemaker ]; then
%fillup_only -n pacemaker
fi
%if %{defined _unitdir}
#%systemd_post crm_mon.service
%service_add_post crm_mon.service
%endif
if [ ! -e %{_sysconfdir}/sysconfig/crm_mon ]; then
%fillup_only -n crm_mon
fi
%preun cli
%if %{defined _unitdir}
#%systemd_preun crm_mon.service
%service_del_preun crm_mon.service
%endif
%postun cli
%if %{defined _unitdir}
#%systemd_postun_with_restart crm_mon.service
%service_del_postun crm_mon.service
%endif
%pre -n libpacemaker3
getent group %{gname} >/dev/null || groupadd -r %{gname} -g 189
getent passwd %{uname} >/dev/null || useradd -r -g %{gname} -u 189 -s /sbin/nologin -c "cluster user" %{uname}
exit 0
%post -n libpacemaker3 -p /sbin/ldconfig
%postun -n libpacemaker3 -p /sbin/ldconfig
%if %{enable_lib_cluster_pkg}
%post -n libpacemaker3-cluster -p /sbin/ldconfig
%postun -n libpacemaker3-cluster -p /sbin/ldconfig
%endif
%if %{with_regression_tests}
%post -n libpacemaker-devel
if [ ! -e /tmp/.pcmk_regression_tests_ran ]; then
touch /tmp/.pcmk_regression_tests_ran
# Needed so that the shell doesn't get stuck on escape
# sequences
export TERM=dumb
%{_datadir}/pacemaker/tests/cli/regression.sh || true
%{_datadir}/pacemaker/tests/pengine/regression.sh -V || true
echo Now running shell regression tests ; date
if ! %{_datadir}/pacemaker/tests/shell/regression.sh ; then
echo "Shell tests failed."
cat crmtestout/regression.out
fi
fi
%endif
%files
###########################################################
%defattr(-,root,root)
%{_defaultdocdir}/%{name}/
#%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
%{_sbindir}/pacemakerd
%if %{defined _unitdir}
%{_unitdir}/pacemaker.service
%{_sbindir}/rcpacemaker
%else
%{_initrddir}/pacemaker
%endif
%exclude %{_libexecdir}/pacemaker/lrmd_test
%exclude %{_sbindir}/pacemaker_remoted
%dir %{_libexecdir}/pacemaker
%{_libexecdir}/pacemaker/*
%{_sbindir}/crm_node
%{_sbindir}/fence_legacy
%if %{with cman}
%{_sbindir}/fence_pcmk
%endif
%{_sbindir}/stonith_admin
%doc %{_mandir}/man7/crmd.*
%doc %{_mandir}/man7/pengine.*
%doc %{_mandir}/man7/stonithd.*
%if %{without cman} || !%{cman_native}
%doc %{_mandir}/man7/ocf_pacemaker_controld.*
%endif
%doc %{_mandir}/man7/ocf_pacemaker_o2cb.*
%doc %{_mandir}/man7/ocf_pacemaker_remote.*
%doc %{_mandir}/man8/crm_node.*
%if %{with cman}
%doc %{_mandir}/man8/fence_pcmk.*
%endif
%doc %{_mandir}/man8/fence_legacy.*
%doc %{_mandir}/man8/pacemakerd.*
%doc %{_mandir}/man8/stonith_admin.*
%doc %{_datadir}/pacemaker/alerts
#%license licenses/GPLv2
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine
%if %{without cman} || !%{cman_native}
/usr/lib/ocf/resource.d/pacemaker/controld
%endif
/usr/lib/ocf/resource.d/pacemaker/o2cb
/usr/lib/ocf/resource.d/pacemaker/remote
/usr/lib/ocf/resource.d/.isolation
%if "%{?cs_version}" != "UNKNOWN"
%if 0%{?cs_version} < 2
%{_libexecdir}/lcrso/pacemaker.lcrso
%endif
%endif
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/pacemaker.conf
%config(noreplace) %{_sysconfdir}/init/pacemaker.combined.conf
%endif
%files cli
%defattr(-,root,root)
%dir %attr (750, root, %{gname}) %{_sysconfdir}/pacemaker
%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker
#%config(noreplace) %{_sysconfdir}/sysconfig/crm_mon
%if %{defined _unitdir}
%{_unitdir}/crm_mon.service
%{_sbindir}/rccrm_mon
%endif
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/crm_mon.conf
%endif
%{_sbindir}/attrd_updater
%{_sbindir}/cibadmin
%{_sbindir}/crm_attribute
%{_sbindir}/crm_diff
%{_sbindir}/crm_error
%{_sbindir}/crm_failcount
%{_sbindir}/crm_master
%{_sbindir}/crm_mon
%{_sbindir}/crm_resource
%{_sbindir}/crm_standby
%{_sbindir}/crm_verify
%{_sbindir}/crmadmin
%{_sbindir}/iso8601
%{_sbindir}/crm_shadow
%{_sbindir}/crm_simulate
%{_sbindir}/crm_report
%{_sbindir}/crm_report.pacemaker
%{_sbindir}/crm_ticket
%exclude %{_datadir}/pacemaker/alerts
%exclude %{_datadir}/pacemaker/tests
%{_datadir}/pacemaker
%{_datadir}/snmp/mibs/PCMK-MIB.txt
%exclude /usr/lib/ocf/resource.d/pacemaker/controld
%exclude /usr/lib/ocf/resource.d/pacemaker/o2cb
%exclude /usr/lib/ocf/resource.d/pacemaker/remote
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
/usr/lib/ocf/resource.d/pacemaker
%config(noreplace) %{_fillupdir}/sysconfig.pacemaker
%config(noreplace) %{_fillupdir}/sysconfig.crm_mon
%doc %{_mandir}/man7/*
%exclude %{_mandir}/man7/crmd.*
%exclude %{_mandir}/man7/pengine.*
%exclude %{_mandir}/man7/stonithd.*
%exclude %{_mandir}/man7/ocf_pacemaker_controld.*
%exclude %{_mandir}/man7/ocf_pacemaker_o2cb.*
%exclude %{_mandir}/man7/ocf_pacemaker_remote.*
%doc %{_mandir}/man8/*
%exclude %{_mandir}/man8/crm_node.*
%exclude %{_mandir}/man8/fence_pcmk.*
%exclude %{_mandir}/man8/fence_legacy.*
%exclude %{_mandir}/man8/pacemakerd.*
%exclude %{_mandir}/man8/pacemaker_remoted.*
%exclude %{_mandir}/man8/stonith_admin.*
#%license licenses/GPLv2
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%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/cores
%files -n libpacemaker3
%defattr(-,root,root)
%{_libdir}/libcib.so.*
%{_libdir}/liblrmd.so.*
%{_libdir}/libcrmservice.so.*
%{_libdir}/libcrmcommon.so.*
%{_libdir}/libpe_status.so.*
%{_libdir}/libpe_rules.so.*
%{_libdir}/libpengine.so.*
%{_libdir}/libstonithd.so.*
%{_libdir}/libtransitioner.so.*
#%license licenses/LGPLv2.1
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%{_libdir}/libcrmcluster.so.*
%if %{enable_lib_cluster_pkg}
%files -n libpacemaker3-cluster
%defattr(-,root,root)
%{_libdir}/libcrmcluster.so.*
#%license licenses/LGPLv2.1
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%endif
%files remote
%defattr(-,root,root)
#%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
%if %{defined _unitdir}
%{_unitdir}/pacemaker_remote.service
%{_sbindir}/rcpacemaker_remote
%else
%{_initrddir}/pacemaker_remote
%endif
%{_sbindir}/pacemaker_remoted
%{_mandir}/man8/pacemaker_remoted.*
#%license licenses/GPLv2
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%if %{with doc}
%files doc
%defattr(-,root,root)
%doc %{pcmk_docdir}
#%license licenses/CC-BY-SA-4.0
%endif
%files cts
%defattr(-,root,root)
#%{py_site}/cts
%{py_sitedir}/cts
%{_datadir}/pacemaker/tests/cts
%{_libexecdir}/pacemaker/lrmd_test
#%license licenses/GPLv2
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%files -n libpacemaker-devel
%defattr(-,root,root)
%exclude %{_datadir}/pacemaker/tests/cts
%{_datadir}/pacemaker/tests
%{_includedir}/pacemaker
%{_libdir}/*.so
%if %{with coverage}
%{_var}/lib/pacemaker/gcov
%endif
%{_libdir}/pkgconfig/*.pc
#%license licenses/LGPLv2.1
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%changelog