pacemaker/pacemaker.spec

802 lines
22 KiB
RPMSpec
Raw Normal View History

#
# spec file for package pacemaker
#
- tools: free allocated memory correctly in crm_resource - attrd: properly write attributes for peers once uuid is discovered - cib: assignment where comparison intended - attrd: only send ack for recognized operations - attrd: make each client operation handler its own function - tools: attrd_updater supports private attributes - attrd supports private attributes (not written to CIB) - pengine: Reschedule specific monitors when resource definitions have changed (bsc#914761) - pengine: Resolve memory leaks (bsc#914761) - Upstream version cs: 622f276c9b773b6fa05a30cb35f8688356dded19 - properly record stop args after reload - pengine: Do not reschedule monitors that are no longer needed while resource definitions have changed (bsc#914761) - Build: Fix building when heartbeat support is disabled - fencing: cl#5134 - Support random fencing delay to avoid double fencing (FATE#317136) - extra: Use crm_simulate for the showscores script - attrd: refresh should force an immediate write-out of all attributes - service: Leave synchronous calls to be free'd by the caller - service: Additional pointer safety - crmd: Add "on_node" attribute for *_last_failure_0 lrm resource operations (bsc#918839) - crm_mon: Fill CRM_notify_node in traps with node's uname rather than node's id if possible (bsc#918839) - pengine: ensure if B is colocated with A, B can never run without A - cib: automatically update .sig files in file backends when clients update live CIB - cib: file-based backends now detect whether file is live CIB - lrmd: add back support for class heartbeat agents - lrmd: provide fake meta data for ra class heartbeat - crm_resource: Use-after-free when restarting a resource - cli: Ensure subsequent unknown long options are correctly detected - crmd: Bug rhbz#1181824 - Ensure the DC can be reliably fenced - attrd_updater: Allow attributes to be set for other nodes OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=188
2015-03-09 16:48:31 +01:00
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global gname haclient
%global uname hacluster
%global pcmk_docdir %{_docdir}/%{name}
%global specversion 1
%global upstream_version HEAD
%global upstream_prefix ClusterLabs-pacemaker
# Turn off the auto compilation of python files not in the site-packages directory
# Needed so that the -devel package is multilib compliant
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
#%%global rawhide %%(test ! -e /etc/yum.repos.d/fedora-rawhide.repo; echo $?)
%global rawhide 0
#%%global cs_version %%(pkg-config corosync --modversion | awk -F . '{print $1}')
%global cs_version 2
%global py_site %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
# Conditionals
# Invoke "rpmbuild --without <feature>" or "rpmbuild --with <feature>"
# to disable or enable specific features
# Legacy stonithd fencing agents
%bcond_with stonithd
%define with_stonithd 1
# Build with/without support for profiling tools
%bcond_with profiling
# Include Build with/without support for performing coverage analysis
%bcond_with coverage
# We generate docs using Publican, Asciidoc and Inkscape, but they're not available everywhere
%bcond_without doc
%define with_doc 0
# Use a different versioning scheme
%bcond_with pre_release
# Ship an Upstart job file
%bcond_with upstart_job
# Turn off cman support on platforms that normally ship with it
%bcond_without cman
%if %{with profiling}
# This disables -debuginfo package creation and also the stripping binaries/libraries
# Useful if you want sane profiling data
%global debug_package %{nil}
%endif
%if %{with pre_release}
%global pcmk_release 0.%{specversion}.%{upstream_version}.git
%else
%global pcmk_release %{specversion}
%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
Summary: Scalable High-Availability cluster resource manager
License: GPL-2.0+ and LGPL-2.1+
Group: Productivity/Clustering/HA
Accepting request 316973 from home:yan_gao:branches:network:ha-clustering:Factory:Test - crmd: Make resource_supports_action() really general - crmd: Remove a duplicate invocation of snprintf() - pengine: clear failures after reconnect_interval expires - RA: Prevent an error message on stopping "Dummy" resource - PE: Ignore comment blocks when unpacking the cib - fencing: use "off" timeout when remapping "reboot" to "off" - fencing: do not set call options twice in query - crmd: don't synthesize op failures during shutdown - lrmd: prevent double free after unregistering stonith device for monitoring - libcommon: crm_ipc_get_fd() must set errno on error - PE: Record the execution date in PE files so we can re-use it in crm_simulate - pengine: allow guest remote nodes using containers/vms to be nested in a group resource - pengine: Resolve memory leak in expand_notification_data() - cib: Prevent use-after-free and return -EINVAL when attempting to delete the whole "/cib" (bsc#934609) - cib: Prevent use-after-free when invoking "cibadmin --delete-all --xpath" (bsc#934609) - crmd: Prevent segfault when erasing resources from disconnected remote nodes - pengine: do not timeout remote node recurring monitor op failure until after fencing - crmd: No need to re-process actions we've already marked as failed - crmd: All pseduo ops must be allowed to complete - crm_simulate: Optionally include action IDs in the dot graph - fencing: properly decide whether a topology fencing device has been found - fencing: properly sort peers by number of fencing devices found - crmd: Record actions in the CIB as failed if we cannot execute them - pengine: do not stop notify a fenced node that the rscs on the fenced node stopped - pengine: fixes segfault in pengine when fencing remote node - remote: do not fail operations because of a migration - remote: handle merging duplicate recurring monitors for connection rsc - pengine: cl#5235 - Prevent graph loops that can be introduced by "load_stopped -> migrate_to" ordering - PE: Exclude nodes which don't match any exclusive discovery rules - Log: improve IPC connection error messages OBS-URL: https://build.opensuse.org/request/show/316973 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=211
2015-07-15 17:54:42 +02:00
Version: 1.1.13+git20150709.ef86b49
- Upgrade to 1.1.6. - PE: Demote from Master does not clear previous errors - crmd: Prevent secondary DC fencing resulting from CIB updates that are lost due to elections - crmd: Log duplicate DC detection as a WARNING not ERROR - crmd: Bug lf#2632 - Correctly handle nodes that return faster than stonith - Core: Treat GNUTLS_E_UNEXPECTED_PACKET_LENGTH as normal termination of a TLS session - cib: Call gnutls_bye() and shutdown() when disconnecting from remote TLS connections - cib: Remove disconnected remote connections from mainloop - cib: Attempt a graceful sign-off for remote TLS connections - Core: Ensure there is sufficient space for EOS when building short-form option strings (prevents segfault) - Core: Fix variable expansion in pkg-config files - PE: Resolve memory leak reported by valgrind - PE: Fix memory leak for re-allocated resources reported by valgrind - PE: Improve the merging with template's operations - crmd: Allow nodes to fence themselves if they're the last one standing (lf#2584) - stonith: Add an API call for listing installed agents - stonith: Allow the fencing history to be queried - stonith: Ensure completed operations are recorded as such in the history - stonith: Support --quiet to display just the seconds since epoch at which a node was last shot - stonith: Serialize actions for a given device - stonith: Add missing entries to stonith_error2string() (missing OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=18
2011-09-20 16:36:23 +02:00
Release: 0
#Release: %{pcmk_release}%{?dist}
Url: http://www.clusterlabs.org
# export VER={upstream_version}
# wget --no-check-certificate -O ClusterLabs-pacemaker-${VER}.tar.gz https://github.com/ClusterLabs/pacemaker/tarball/${VER}
Source0: %{name}-%{version}.tar.bz2
Source100: pacemaker.rpmlintrc
Patch1: bug-806256_pacemaker-log-level-notice.patch
Patch2: bug-728579_pacemaker-stonith-dev-id.patch
Patch3: pacemaker-NodeUtilization-RA.patch
Accepting request 311417 from home:yan_gao:branches:network:ha-clustering:Factory:Test - pengine: cl#5130 - Only check the capacities of the nodes that are allowed to run the resource (FATE#313105) - cib: Correctly add "update-origin", "update-client" and "update-user" attributes for cib (bsc#931177) - fencing : Correction of the log output of the practice node of stonith. - Upstream version cs: a0449d443fa5c834207def5fe36a117a53c334d6 - xml: Correctly create v1 patchsets when deleting attributes (bsc#931170) - xml: Prevent potential use-of-NULL (bsc#929960) - Upstream version cs: 677f53216662d121a47b4c7683ec3749c614437e - cib: No need to enforce cib digests for v2 diffs in legacy mode (bsc#929960) - cib: Ability to upgrade cib validation schema in legacy mode (bsc#929960) - xml: Do not dump deleted attributes (bsc#929960) - cib: Revert d153b86 to instantly get cib synchronized in legacy mode (bsc#929960) - cib: Enable cib legacy mode for plugin-based clusters (bsc#929960) - Build: CRM_STATE_DIR is created dynamically when needed - Tools: Repair expected output for ACLs - Build: Prevent rpm packaging conflicts - pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources (FATE#313105) * Drop obsolete pacemaker-colocated-utilization.patch - Upstream version cs: 0b79da3e73fe2ced8b9602aa59d55873d857b3e7 - crmd/pengine: implement on-fail=ignore without allow-fail - pengine: Prevent use-after-free in sort_rsc_process_order() (bsc#930368) - crmd: Prevent the old version of DC from being fenced when it shuts down for rolling-upgrade (bsc#929955) - xml: Fix upgrade-1.3.xsl to correctly transform ACL rules with "attribute" (bsc#929681) - crmd/pengine: handle on-fail=ignore properly - crmd: respect start-failure-is-fatal even for artifically injected events - crmd: don't update fail count twice for same failure - crmd: report operation rc as advertised instead of status - xml: add RelaxNG schema for crm_mon XML output OBS-URL: https://build.opensuse.org/request/show/311417 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=209
2015-06-10 11:25:55 +02:00
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
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: python
Requires: resource-agents
Recommends: crmsh
Recommends: libdlm
Recommends: fence-agents
Recommends: sbd
Suggests: graphviz
%if %{defined systemd_requires}
%systemd_requires
%endif
%if 0%{?rhel} > 0
ExclusiveArch: i686 x86_64
%endif
# Required for core functionality
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: glib2-devel
%if 0%{?suse_version}
BuildRequires: libbz2-devel
%else
BuildRequires: bzip2-devel
%endif
BuildRequires: libtool
BuildRequires: libtool-ltdl-devel
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: python
BuildRequires: python-devel
# Required for agent_config.h which specifies the correct scratch directory
BuildRequires: resource-agents
# We need reasonably recent versions of libqb
BuildRequires: libqb-devel > 0.11.0
Requires: libqb > 0.11.0
# Enables optional functionality
BuildRequires: bison
#BuildRequires: byacc
BuildRequires: dbus-1-devel
%if 0%{?suse_version} > 1100
BuildRequires: docbook-xsl-stylesheets
%else
BuildRequires: docbook-style-xsl
%endif
BuildRequires: flex
%if 0%{?suse_version} > 1210
BuildRequires: libgnutls-devel
%else
BuildRequires: gnutls-devel
%endif
BuildRequires: help2man
BuildRequires: libselinux-devel
BuildRequires: ncurses-devel
BuildRequires: openssl-devel
BuildRequires: pkgconfig(systemd)
%if %{with cman}
%if 0%{?fedora} > 0
%if 0%{?fedora} < 17
BuildRequires: clusterlib-devel
%endif
%endif
%if 0%{?rhel} > 0
%if 0%{?rhel} < 7
BuildRequires: clusterlib-devel
%endif
%endif
%endif
%if %with_corosync_support
Requires: corosync
#BuildRequires: corosynclib-devel
BuildRequires: libcorosync-devel
%endif
%if %with_heartbeat_support
BuildRequires: heartbeat-devel
Requires: heartbeat
%endif
#%if %{with stonithd}
%if %{with_stonithd}
#BuildRequires: cluster-glue-libs-devel
BuildRequires: libglue-devel
%endif
%if !0%{?rawhide}
# More often than not, inkscape is busted on rawhide, don't even bother
#%if %{with doc}
%if %{with_doc}
%ifarch %{ix86} x86_64
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
BuildRequires: vim-base
%endif
%endif
%description
Pacemaker is an advanced, scalable High-Availability cluster resource
manager for Corosync, CMAN and/or Linux-HA.
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 stonithd doc coverage profiling pre_release upstart_job
%package cli
Summary: Command line tools for controlling Pacemaker clusters
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
Requires: perl-TimeDate
%description cli
Pacemaker is an advanced, scalable High-Availability cluster resource
manager for Corosync, CMAN and/or Linux-HA.
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
%description -n libpacemaker3
Pacemaker is an advanced, scalable High-Availability cluster resource
manager for Corosync, CMAN and/or Linux-HA.
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 for Corosync, CMAN and/or Linux-HA.
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 for Corosync, CMAN and/or Linux-HA.
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
%if 0%{?suse_version}
Requires: libbz2-devel
%else
Requires: bzip2-devel
%endif
Requires: libcorosync-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
%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 for Corosync, CMAN and/or Linux-HA.
The libpacemaker-devel package contains headers and shared libraries
for developing tools for Pacemaker.
%package cts
Summary: Test framework for cluster-related technologies like Pacemaker
Group: Productivity/Clustering/HA
Requires: libpacemaker3 = %{version}-%{release}
Requires: python
%description cts
Test framework for cluster-related technologies like Pacemaker
%if %{with_doc}
%package doc
Summary: Documentation for Pacemaker
Group: Productivity/Clustering/HA
%description doc
Documentation for Pacemaker.
Pacemaker is an advanced, scalable High-Availability cluster resource
manager for Corosync, CMAN and/or Linux-HA.
%endif
%prep
#%setup -q -n %{name}%{upstream_prefix}-%{upstream_version}
%setup -q -n %{name}-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -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
./autogen.sh
# RHEL <= 5 does not support --docdir
docdir=%{pcmk_docdir} %{configure} \
%{?with_profiling: --with-profiling} \
%{?with_coverage: --with-coverage} \
%{!?with_cman: --without-cman} \
%if !%with_heartbeat_support
Accepting request 311417 from home:yan_gao:branches:network:ha-clustering:Factory:Test - pengine: cl#5130 - Only check the capacities of the nodes that are allowed to run the resource (FATE#313105) - cib: Correctly add "update-origin", "update-client" and "update-user" attributes for cib (bsc#931177) - fencing : Correction of the log output of the practice node of stonith. - Upstream version cs: a0449d443fa5c834207def5fe36a117a53c334d6 - xml: Correctly create v1 patchsets when deleting attributes (bsc#931170) - xml: Prevent potential use-of-NULL (bsc#929960) - Upstream version cs: 677f53216662d121a47b4c7683ec3749c614437e - cib: No need to enforce cib digests for v2 diffs in legacy mode (bsc#929960) - cib: Ability to upgrade cib validation schema in legacy mode (bsc#929960) - xml: Do not dump deleted attributes (bsc#929960) - cib: Revert d153b86 to instantly get cib synchronized in legacy mode (bsc#929960) - cib: Enable cib legacy mode for plugin-based clusters (bsc#929960) - Build: CRM_STATE_DIR is created dynamically when needed - Tools: Repair expected output for ACLs - Build: Prevent rpm packaging conflicts - pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources (FATE#313105) * Drop obsolete pacemaker-colocated-utilization.patch - Upstream version cs: 0b79da3e73fe2ced8b9602aa59d55873d857b3e7 - crmd/pengine: implement on-fail=ignore without allow-fail - pengine: Prevent use-after-free in sort_rsc_process_order() (bsc#930368) - crmd: Prevent the old version of DC from being fenced when it shuts down for rolling-upgrade (bsc#929955) - xml: Fix upgrade-1.3.xsl to correctly transform ACL rules with "attribute" (bsc#929681) - crmd/pengine: handle on-fail=ignore properly - crmd: respect start-failure-is-fatal even for artifically injected events - crmd: don't update fail count twice for same failure - crmd: report operation rc as advertised instead of status - xml: add RelaxNG schema for crm_mon XML output OBS-URL: https://build.opensuse.org/request/show/311417 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=209
2015-06-10 11:25:55 +02:00
--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-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 docdir=%{pcmk_docdir} all
%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} docdir=%{pcmk_docdir} V=1 install
#mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
install -d -m755 $RPM_BUILD_ROOT/var/adm/fillup-templates
mkdir -p ${RPM_BUILD_ROOT}%{_var}/lib/pacemaker/cores
#install -m 644 mcp/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker
install -m 644 mcp/pacemaker.sysconfig $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.pacemaker
#install -m 644 tools/crm_mon.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/crm_mon
install -m 644 tools/crm_mon.sysconfig $RPM_BUILD_ROOT/var/adm/fillup-templates/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
find %{buildroot} -name '*.xsl' -type f -print0 | xargs -0 chmod a-x
find %{buildroot} -name '*.rng' -type f -print0 | xargs -0 chmod a-x
find %{buildroot} -name '*.dtd' -type f -print0 | xargs -0 chmod a-x
# Dont 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
# Do not package these either
rm -f %{buildroot}/%{_libdir}/service_crm.so
# 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 /usr/sbin/service %{buildroot}%{_sbindir}/rcpacemaker
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcpacemaker_remote
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rccrm_mon
%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
%if %{defined _unitdir}
%post
#%systemd_post pacemaker.service
%service_add_post pacemaker.service
if [ ! -e %{_sysconfdir}/sysconfig/pacemaker ]; then
%fillup_only pacemaker
fi
%pre
%service_add_pre pacemaker.service
%preun
#%systemd_preun pacemaker.service
%service_del_preun pacemaker.service
%postun
#%systemd_postun_with_restart pacemaker.service
%service_del_postun pacemaker.service
%post remote
#%systemd_post pacemaker_remote.service
%service_add_post pacemaker_remote.service
if [ ! -e %{_sysconfdir}/sysconfig/pacemaker ]; then
%fillup_only pacemaker
fi
%pre remote
%service_add_pre pacemaker_remote.service
%preun remote
#%systemd_preun pacemaker_remote.service
%service_del_preun pacemaker_remote.service
%postun remote
#%systemd_postun_with_restart pacemaker_remote.service
%service_del_postun pacemaker_remote.service
%post cli
#%systemd_post crm_mon.service
%service_add_post crm_mon.service
if [ ! -e %{_sysconfdir}/sysconfig/crm_mon ]; then
%fillup_only crm_mon
fi
%pre cli
%service_add_pre crm_mon.service
%preun cli
#%systemd_preun crm_mon.service
%service_del_preun crm_mon.service
%postun cli
#%systemd_postun_with_restart crm_mon.service
%service_del_postun crm_mon.service
%else
%post
/sbin/chkconfig --add pacemaker || :
%preun
/sbin/service pacemaker stop || :
if [ $1 -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker || :
fi
%post remote
/sbin/chkconfig --add pacemaker_remote || :
%preun remote
/sbin/service pacemaker_remote stop &>/dev/null || :
if [ $1 -eq 0 ]; then
# Package removal, not upgrade
/sbin/chkconfig --del pacemaker_remote || :
fi
%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
/usr/share/pacemaker/tests/cli/regression.sh || true
/usr/share/pacemaker/tests/pengine/regression.sh -V || true
echo Now running shell regression tests ; date
if ! /usr/share/pacemaker/tests/shell/regression.sh ; then
echo "Shell tests failed."
cat crmtestout/regression.out
fi
fi
%endif
%files
###########################################################
%defattr(-,root,root)
%exclude %{_datadir}/pacemaker/tests
#%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker
%{_sbindir}/pacemakerd
%if %{defined _unitdir}
%{_unitdir}/pacemaker.service
%{_sbindir}/rcpacemaker
%else
%{_initrddir}/pacemaker
%endif
%exclude %{_datadir}/pacemaker/report.common
%exclude %{_datadir}/pacemaker/report.collector
%{_datadir}/pacemaker
%{_datadir}/snmp/mibs/PCMK-MIB.txt
%exclude %{_libexecdir}/pacemaker/lrmd_test
%exclude %{_sbindir}/pacemaker_remoted
%dir %{_libexecdir}/pacemaker
%{_libexecdir}/pacemaker/*
%{_sbindir}/crm_attribute
%{_sbindir}/crm_master
%{_sbindir}/crm_node
%{_sbindir}/attrd_updater
%{_sbindir}/fence_legacy
%{_sbindir}/fence_pcmk
%{_sbindir}/stonith_admin
%doc %{_mandir}/man7/*
%doc %{_mandir}/man8/attrd_updater.*
%doc %{_mandir}/man8/crm_attribute.*
%doc %{_mandir}/man8/crm_node.*
%doc %{_mandir}/man8/crm_master.*
%doc %{_mandir}/man8/fence_pcmk.*
%doc %{_mandir}/man8/fence_legacy.*
%doc %{_mandir}/man8/pacemakerd.*
%doc %{_mandir}/man8/stonith_admin.*
%doc COPYING
%doc AUTHORS
%doc ChangeLog
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cores
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/blackbox
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
/usr/lib/ocf/resource.d/pacemaker
/usr/lib/ocf/resource.d/.isolation
%if 0%{?cs_version} < 2
%{_libexecdir}/lcrso/pacemaker.lcrso
%endif
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/pacemaker.conf
%config(noreplace) %{_sysconfdir}/init/pacemaker.combined.conf
%endif
%files cli
%defattr(-,root,root)
%if %{defined _unitdir}
%{_unitdir}/crm_mon.service
%{_sbindir}/rccrm_mon
%endif
%if %{with upstart_job}
%config(noreplace) %{_sysconfdir}/init/crm_mon.conf
%endif
%{_sbindir}/cibadmin
%{_sbindir}/crm_diff
%{_sbindir}/crm_error
%{_sbindir}/crm_failcount
%{_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_ticket
%{_datadir}/pacemaker/report.common
%{_datadir}/pacemaker/report.collector
%config(noreplace) /var/adm/fillup-templates/sysconfig.crm_mon
%doc %{_mandir}/man8/*
%exclude %{_mandir}/man8/attrd_updater.*
%exclude %{_mandir}/man8/crm_attribute.*
%exclude %{_mandir}/man8/crm_node.*
%exclude %{_mandir}/man8/crm_master.*
%exclude %{_mandir}/man8/fence_pcmk.*
%exclude %{_mandir}/man8/fence_legacy.*
%exclude %{_mandir}/man8/pacemakerd.*
%exclude %{_mandir}/man8/pacemaker_remoted.*
%exclude %{_mandir}/man8/stonith_admin.*
%doc COPYING
%doc AUTHORS
%doc ChangeLog
%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.*
%config(noreplace) /var/adm/fillup-templates/sysconfig.pacemaker
%doc COPYING.LIB
%doc AUTHORS
%{_libdir}/libcrmcluster.so.*
%if %{enable_lib_cluster_pkg}
%files -n libpacemaker3-cluster
%defattr(-,root,root)
#%{_libdir}/libcrmcluster.so.*
%doc COPYING.LIB
%doc AUTHORS
%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.*
%doc COPYING.LIB
%doc AUTHORS
%if %{with_doc}
%files doc
%defattr(-,root,root)
%doc %{pcmk_docdir}
%endif
%files cts
%defattr(-,root,root)
#%{py_site}/cts
%{py_sitedir}/cts
%{_datadir}/pacemaker/tests/cts
%{_libexecdir}/pacemaker/lrmd_test
%doc COPYING.LIB
%doc AUTHORS
%files -n libpacemaker-devel
%defattr(-,root,root)
%exclude %{_datadir}/pacemaker/tests/cts
%{_datadir}/pacemaker/tests
%{_includedir}/pacemaker
%{_libdir}/*.so
%if %{with coverage}
Accepting request 311417 from home:yan_gao:branches:network:ha-clustering:Factory:Test - pengine: cl#5130 - Only check the capacities of the nodes that are allowed to run the resource (FATE#313105) - cib: Correctly add "update-origin", "update-client" and "update-user" attributes for cib (bsc#931177) - fencing : Correction of the log output of the practice node of stonith. - Upstream version cs: a0449d443fa5c834207def5fe36a117a53c334d6 - xml: Correctly create v1 patchsets when deleting attributes (bsc#931170) - xml: Prevent potential use-of-NULL (bsc#929960) - Upstream version cs: 677f53216662d121a47b4c7683ec3749c614437e - cib: No need to enforce cib digests for v2 diffs in legacy mode (bsc#929960) - cib: Ability to upgrade cib validation schema in legacy mode (bsc#929960) - xml: Do not dump deleted attributes (bsc#929960) - cib: Revert d153b86 to instantly get cib synchronized in legacy mode (bsc#929960) - cib: Enable cib legacy mode for plugin-based clusters (bsc#929960) - Build: CRM_STATE_DIR is created dynamically when needed - Tools: Repair expected output for ACLs - Build: Prevent rpm packaging conflicts - pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources (FATE#313105) * Drop obsolete pacemaker-colocated-utilization.patch - Upstream version cs: 0b79da3e73fe2ced8b9602aa59d55873d857b3e7 - crmd/pengine: implement on-fail=ignore without allow-fail - pengine: Prevent use-after-free in sort_rsc_process_order() (bsc#930368) - crmd: Prevent the old version of DC from being fenced when it shuts down for rolling-upgrade (bsc#929955) - xml: Fix upgrade-1.3.xsl to correctly transform ACL rules with "attribute" (bsc#929681) - crmd/pengine: handle on-fail=ignore properly - crmd: respect start-failure-is-fatal even for artifically injected events - crmd: don't update fail count twice for same failure - crmd: report operation rc as advertised instead of status - xml: add RelaxNG schema for crm_mon XML output OBS-URL: https://build.opensuse.org/request/show/311417 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=209
2015-06-10 11:25:55 +02:00
%{_var}/lib/pacemaker/gcov
%endif
%{_libdir}/pkgconfig/*.pc
%doc COPYING.LIB
%doc AUTHORS
%changelog