Re-sync with the upstream spec file
This commit is contained in:
parent
fde19d9994
commit
f007d73c77
262
pacemaker.spec
262
pacemaker.spec
@ -2,48 +2,53 @@
|
||||
%global uname hacluster
|
||||
%global pcmk_docdir %{_docdir}/%{name}
|
||||
|
||||
# Supported cluster stacks, must support at least one
|
||||
%bcond_without cman
|
||||
%bcond_without ais
|
||||
%bcond_without heartbeat
|
||||
|
||||
# ESMTP is not available in RHEL, only in EPEL. Allow people to build
|
||||
# the RPM without ESMTP in case they choose not to use EPEL packages
|
||||
%bcond_with esmtp
|
||||
|
||||
# SNMP trap support only works with Net-SNMP 5.4 and above
|
||||
# And links against libperl.so which is borked on fedora
|
||||
%bcond_with snmp
|
||||
|
||||
# Support additional trace logging
|
||||
%bcond_with tracedata
|
||||
|
||||
%bcond_without doc
|
||||
|
||||
# We generate some docs using Publican, but its not available everywhere
|
||||
%bcond_with publican
|
||||
|
||||
%global specversion 1
|
||||
%global upstream_version Pacemaker-1.1.6
|
||||
%global upstream_prefix Pacemaker-1-1-
|
||||
|
||||
# Compatibility macros for distros (fedora) that don't provide Python macros by default
|
||||
# Do this instead of trying to conditionally include {_rpmconfigdir}/macros.python
|
||||
%{!?py_ver: %{expand: %%global py_ver %%(echo `python -c "import sys; print sys.version[:3]"`)}}
|
||||
%{!?py_prefix: %{expand: %%global py_prefix %%(echo `python -c "import sys; print sys.prefix"`)}}
|
||||
%{!?py_libdir: %{expand: %%global py_libdir %%{expand:%%%%{py_prefix}/%%%%{_lib}/python%%%%{py_ver}}}}
|
||||
%{!?py_sitedir: %{expand: %%global py_sitedir %%{expand:%%%%{py_libdir}/site-packages}}}
|
||||
|
||||
# Supported cluster stacks, must support at least one
|
||||
%bcond_without cman
|
||||
%bcond_without doc
|
||||
%bcond_without corosync
|
||||
%bcond_with heartbeat
|
||||
|
||||
# ESMTP is not available in RHEL, only in EPEL. Allow people to build
|
||||
# the RPM without ESMTP in case they choose not to use EPEL packages
|
||||
%bcond_with esmtp
|
||||
%bcond_with snmp
|
||||
|
||||
# Build with/without support for profiling tools
|
||||
%bcond_with profiling
|
||||
%bcond_with gcov
|
||||
|
||||
# Support additional trace logging
|
||||
%bcond_without tracedata
|
||||
|
||||
# We generate some docs using Publican, but its not available everywhere
|
||||
%bcond_without publican
|
||||
|
||||
# Use a different versioning scheme
|
||||
%bcond_with pre_release
|
||||
|
||||
%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}.hg
|
||||
%else
|
||||
%global pcmk_release %{specversion}
|
||||
%endif
|
||||
|
||||
# Compatibility macros for distros that don't provide Python macros by default.
|
||||
# Do this instead of trying to conditionally include
|
||||
# {_rpmconfigdir}/macros.python which doesn't always exist
|
||||
%{!?py_ver: %{expand: %%global py_ver %%(echo `python -c "import sys; print sys.version[:3]"`)}}
|
||||
%{!?py_prefix: %{expand: %%global py_prefix %%(echo `python -c "import sys; print sys.prefix"`)}}
|
||||
%{!?py_libdir: %{expand: %%global py_libdir %%{expand:%%%%{py_prefix}/%%%%{_lib}/python%%%%{py_ver}}}}
|
||||
%{!?py_sitedir: %{expand: %%global py_sitedir %%{expand:%%%%{py_libdir}/site-packages}}}
|
||||
|
||||
Name: pacemaker
|
||||
Summary: Scalable High-Availability cluster resource manager
|
||||
Version: 1.1.6
|
||||
@ -52,45 +57,53 @@ License: GPLv2+ and LGPLv2+
|
||||
Url: http://www.clusterlabs.org
|
||||
Group: System Environment/Daemons
|
||||
Source0: http://hg.clusterlabs.org/pacemaker/1.1/archive/%{upstream_version}.tar.bz2
|
||||
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
AutoReqProv: on
|
||||
Requires(pre): cluster-glue
|
||||
Requires: resource-agents
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: %{name}-cluster-libs = %{version}-%{release}
|
||||
Requires: %{name}-cli = %{version}-%{release}
|
||||
Requires: python >= 2.4
|
||||
Conflicts: heartbeat < 2.99
|
||||
|
||||
%if %{with snmp}
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||
%endif
|
||||
|
||||
# Required for core functionality
|
||||
BuildRequires: automake autoconf libtool pkgconfig libtool-ltdl-devel python-devel
|
||||
BuildRequires: automake autoconf libtool pkgconfig python libtool-ltdl-devel
|
||||
BuildRequires: glib2-devel cluster-glue-libs-devel libxml2-devel libxslt-devel
|
||||
BuildRequires: pkgconfig python-devel gcc-c++ bzip2-devel gnutls-devel pam-devel
|
||||
|
||||
# Enables optional functionality
|
||||
BuildRequires: help2man ncurses-devel openssl-devel libselinux-devel docbook-style-xsl resource-agents
|
||||
BuildRequires: ncurses-devel openssl-devel libselinux-devel docbook-style-xsl resource-agents
|
||||
|
||||
%if %{with esmtp}
|
||||
BuildRequires: libesmtp-devel
|
||||
%endif
|
||||
|
||||
%if %{with snmp}
|
||||
BuildRequires: net-snmp-devel >= 5.4
|
||||
Requires: net-snmp >= 5.4
|
||||
%endif
|
||||
|
||||
%if %{with ais}
|
||||
BuildRequires: corosynclib-devel
|
||||
%ifarch alpha %{ix86} x86_64
|
||||
BuildRequires: lm_sensors-devel
|
||||
%endif
|
||||
|
||||
%if %{with cman}
|
||||
BuildRequires: clusterlib-devel
|
||||
%endif
|
||||
|
||||
%if %{with esmtp}
|
||||
BuildRequires: libesmtp-devel
|
||||
%endif
|
||||
|
||||
%if %{with snmp}
|
||||
BuildRequires: net-snmp-devel
|
||||
%endif
|
||||
|
||||
%if %{with corosync}
|
||||
# Do not require corosync, the admin should select which stack to use and install it
|
||||
BuildRequires: corosynclib-devel
|
||||
%endif
|
||||
|
||||
%if %{with heartbeat}
|
||||
BuildRequires: heartbeat-devel heartbeat-libs
|
||||
# Do not require heartbeat, the admin should select which stack to use and install it
|
||||
BuildRequires: heartbeat-devel heartbeat-libs >= 3.0.0
|
||||
%endif
|
||||
|
||||
%if %{with doc}
|
||||
@ -105,7 +118,7 @@ BuildRequires: publican inkscape
|
||||
|
||||
%description
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
It supports "n-node" clusters with significant capabilities for
|
||||
managing resources and dependencies.
|
||||
@ -114,38 +127,47 @@ 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) : heartbeat cman corosync doc publican snmp esmtp pre_release
|
||||
|
||||
%package cli
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Summary: Command line tools for controlling the Pacemaker cluster resource manager
|
||||
Summary: Command line tools for controlling Pacemaker clusters
|
||||
Group: System Environment/Daemons
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description cli
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
It supports "n-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.
|
||||
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 %{name}-libs
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Summary: Libraries used by the Pacemaker cluster resource manager and its clients
|
||||
Summary: Core Pacemaker libraries
|
||||
Group: System Environment/Daemons
|
||||
|
||||
%description -n %{name}-libs
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
It supports "n-node" clusters with significant capabilities for
|
||||
managing resources and dependencies.
|
||||
The %{name}-libs package contains shared libraries needed for cluster
|
||||
nodes and those just running the CLI tools.
|
||||
|
||||
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.
|
||||
%package -n %{name}-cluster-libs
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Summary: Cluster Libraries used by Pacemaker
|
||||
Group: System Environment/Daemons
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description -n %{name}-cluster-libs
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
The %{name}-cluster-libs package contains cluster-aware shared
|
||||
libraries needed for nodes that will form part of the cluster nodes.
|
||||
|
||||
%package -n %{name}-libs-devel
|
||||
License: GPLv2+ and LGPLv2+
|
||||
@ -153,7 +175,8 @@ Summary: Pacemaker development package
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: cluster-glue-libs-devel libtool-ltdl-devel
|
||||
%if %{with ais}
|
||||
Requires: libxml2-devel libxslt-devel bzip2-devel glib2-devel
|
||||
%if %{with corosync}
|
||||
Requires: corosynclib-devel
|
||||
%endif
|
||||
%if %{with heartbeat}
|
||||
@ -161,17 +184,12 @@ Requires: heartbeat-devel
|
||||
%endif
|
||||
|
||||
%description -n %{name}-libs-devel
|
||||
Headers and shared libraries for developing tools for Pacemaker.
|
||||
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
It supports "n-node" clusters with significant capabilities for
|
||||
managing resources and dependencies.
|
||||
The %{name}-libs-devel package contains headers and shared libraries
|
||||
for developing tools for Pacemaker.
|
||||
|
||||
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.
|
||||
|
||||
%package cts
|
||||
License: GPLv2+ and LGPLv2+
|
||||
@ -191,17 +209,19 @@ Group: Documentation
|
||||
Documentation for Pacemaker.
|
||||
|
||||
Pacemaker is an advanced, scalable High-Availability cluster resource
|
||||
manager for OpenAIS/Corosync.
|
||||
manager for Linux-HA (Heartbeat) and/or Corosync.
|
||||
|
||||
It supports "n-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.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{upstream_prefix}%{upstream_version}
|
||||
%setup -q -n %{upstream_prefix}-%{upstream_version}
|
||||
|
||||
# Force the local time
|
||||
#
|
||||
# 'hg archive' 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
|
||||
@ -210,21 +230,19 @@ resource health.
|
||||
eval `objdump --headers --private-headers /usr/bin/perl | grep RPATH | awk '{print "export LD_LIBRARY_PATH="$2}'`
|
||||
%endif
|
||||
|
||||
%{configure} \
|
||||
%{!?with_heartbeat: --without-heartbeat} \
|
||||
%{!?with_ais: --without-ais} \
|
||||
%{!?with_esmtp: --without-esmtp} \
|
||||
%{!?with_snmp: --without-snmp} \
|
||||
%{?with_cman: --with-cman} \
|
||||
%{?with_profiling: --with-profiling} \
|
||||
%{?with_gcov: --with-gcov} \
|
||||
%{?with_tracedata --with-tracedata} \
|
||||
--with-version=%{version}-%{release} \
|
||||
--docdir=%{pcmk_docdir} \
|
||||
%{configure} \
|
||||
%{!?with_heartbeat: --without-heartbeat} \
|
||||
%{!?with_corosync: --without-ais} \
|
||||
%{!?with_esmtp: --without-esmtp} \
|
||||
%{!?with_snmp: --without-snmp} \
|
||||
%{?with_cman: --with-cman} \
|
||||
%{?with_profiling: --with-profiling} \
|
||||
%{?with_gcov: --with-gcov} \
|
||||
%{?with_tracedata: --with-tracedata} \
|
||||
--with-initdir=%{_initrddir} \
|
||||
--localstatedir=%{_var} \
|
||||
--with-initdir=%{_initddir} \
|
||||
--enable-fatal-warnings=no \
|
||||
--disable-ansi
|
||||
--with-version=%{version}-%{release} \
|
||||
--enable-fatal-warnings=no
|
||||
|
||||
make %{_smp_mflags}
|
||||
|
||||
@ -236,6 +254,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
|
||||
install -m 644 mcp/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker
|
||||
|
||||
# Scripts that should be executable
|
||||
chmod a+x %{buildroot}/%{_libdir}/heartbeat/hb2openais-helper.py
|
||||
chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/CTSlab.py
|
||||
chmod a+x %{buildroot}/%{_datadir}/pacemaker/tests/cts/extracttests.py
|
||||
|
||||
@ -245,15 +264,25 @@ 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 or compiled python
|
||||
# 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
|
||||
|
||||
# Don't package these either
|
||||
# Do not package these either
|
||||
rm -f %{buildroot}/%{_libdir}/heartbeat/hb2openais-helper.*
|
||||
rm -f %{buildroot}/%{_libdir}/heartbeat/crm_primitive.*
|
||||
rm -f %{buildroot}/%{_libdir}/heartbeat/atest
|
||||
rm -f %{buildroot}/%{_libdir}/service_crm.so
|
||||
rm -f %{buildroot}/usr/lib/ocf/resource.d/pacemaker/pingd
|
||||
|
||||
%if %{with gcov}
|
||||
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
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
@ -263,14 +292,18 @@ rm -rf %{buildroot}
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
/sbin/service pacemaker stop &>/dev/null || :
|
||||
/sbin/chkconfig --del pacemaker || :
|
||||
/sbin/service pacemaker stop &>/dev/null || :
|
||||
/sbin/chkconfig --del pacemaker || :
|
||||
fi
|
||||
|
||||
%post -n %{name}-libs -p /sbin/ldconfig
|
||||
|
||||
%postun -n %{name}-libs -p /sbin/ldconfig
|
||||
|
||||
%post -n %{name}-cluster-libs -p /sbin/ldconfig
|
||||
|
||||
%postun -n %{name}-cluster-libs -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
###########################################################
|
||||
%defattr(-,root,root)
|
||||
@ -278,8 +311,9 @@ fi
|
||||
%exclude %{_datadir}/pacemaker/tests
|
||||
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/pacemaker
|
||||
%{_initddir}/pacemaker
|
||||
%{_sbindir}/pacemakerd
|
||||
%{_initrddir}/pacemaker
|
||||
|
||||
%if %{defined _unitdir}
|
||||
%{_unitdir}/pacemaker.service
|
||||
%endif
|
||||
@ -287,14 +321,19 @@ fi
|
||||
%{_datadir}/pacemaker
|
||||
%{_datadir}/snmp/mibs/PCMK-MIB.txt
|
||||
%{_libdir}/heartbeat/*
|
||||
|
||||
%{_sbindir}/crm_attribute
|
||||
%{_sbindir}/crm_master
|
||||
%{_sbindir}/crm_node
|
||||
%{_sbindir}/attrd_updater
|
||||
%{_sbindir}/fence_legacy
|
||||
%{_sbindir}/stonith_admin
|
||||
|
||||
# Packaged elsewhere
|
||||
%exclude %{_datadir}/pacemaker/tests
|
||||
%if %{with heartbeat}
|
||||
%{_sbindir}/crm_uuid
|
||||
%else
|
||||
%exclude %{_sbindir}/crm_uuid
|
||||
%endif
|
||||
|
||||
%doc COPYING
|
||||
%doc AUTHORS
|
||||
@ -302,11 +341,11 @@ fi
|
||||
|
||||
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
|
||||
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
|
||||
%ghost %dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
|
||||
%dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
|
||||
%dir /usr/lib/ocf
|
||||
%dir /usr/lib/ocf/resource.d
|
||||
/usr/lib/ocf/resource.d/pacemaker
|
||||
%if %{with ais}
|
||||
%if %{with corosync}
|
||||
%{_libexecdir}/lcrso/pacemaker.lcrso
|
||||
%endif
|
||||
|
||||
@ -325,7 +364,6 @@ fi
|
||||
%{_sbindir}/ptest
|
||||
%{_sbindir}/crm_shadow
|
||||
%{_sbindir}/cibpipe
|
||||
%{_sbindir}/crm_node
|
||||
%{_sbindir}/crm_simulate
|
||||
%{_sbindir}/crm_report
|
||||
%{_sbindir}/crm_ticket
|
||||
@ -335,12 +373,6 @@ fi
|
||||
%doc %{_mandir}/man8/*
|
||||
%endif
|
||||
|
||||
%if %{with heartbeat}
|
||||
%{_sbindir}/crm_uuid
|
||||
%else
|
||||
%exclude %{_sbindir}/crm_uuid
|
||||
%endif
|
||||
|
||||
%doc COPYING
|
||||
%doc AUTHORS
|
||||
%doc ChangeLog
|
||||
@ -349,11 +381,16 @@ fi
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libcib.so.*
|
||||
%{_libdir}/libcrmcommon.so.*
|
||||
%{_libdir}/libcrmcluster.so.*
|
||||
%{_libdir}/libpe_status.so.*
|
||||
%{_libdir}/libpe_rules.so.*
|
||||
%{_libdir}/libpengine.so.*
|
||||
%{_libdir}/libtransitioner.so.*
|
||||
%doc COPYING.LIB
|
||||
%doc AUTHORS
|
||||
|
||||
%files -n %{name}-cluster-libs
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libcrmcluster.so.*
|
||||
%{_libdir}/libstonithd.so.*
|
||||
%doc COPYING.LIB
|
||||
%doc AUTHORS
|
||||
@ -375,11 +412,20 @@ fi
|
||||
%{_datadir}/pacemaker/tests
|
||||
%{_includedir}/pacemaker
|
||||
%{_libdir}/*.so
|
||||
%if %{with gcov}
|
||||
%{_var}/lib/pacemaker
|
||||
%endif
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%doc COPYING.LIB
|
||||
%doc AUTHORS
|
||||
|
||||
%changelog
|
||||
* Mon Sep 26 2011 Andrew Beekhof <andrew@beekhof.net> 1.1.6-2
|
||||
- Do not build in support for heartbeat, snmp, esmtp by default
|
||||
- Create a package for cluster unaware libraries to minimze our
|
||||
footprint on non-cluster nodes
|
||||
- Better package descriptions
|
||||
|
||||
* Thu Sep 07 2011 Andrew Beekhof <andrew@beekhof.net> 1.1.6-1
|
||||
- Upstream release of 1.1.6
|
||||
- See included ChangeLog file or http://hg.clusterlabs.org/pacemaker/1.1/file/tip/ChangeLog for details
|
||||
|
Loading…
Reference in New Issue
Block a user