From 09f165899ed9ee153f8eabb25c81f5f8365faae3 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Thu, 6 Oct 2011 17:11:41 +1100 Subject: [PATCH] Switch package tarball to git --- .gitignore | 1 + pacemaker.spec | 227 +++++++++++++++++++++++++++++-------------------- sources | 2 +- 3 files changed, 136 insertions(+), 94 deletions(-) diff --git a/.gitignore b/.gitignore index c4eb20f..e2628cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /Pacemaker-1.1.4.tar.bz2 /Pacemaker-1.1.5.tar.bz2 /Pacemaker-1.1.6.tar.bz2 +/ClusterLabs-pacemaker-89678d4.tar.gz diff --git a/pacemaker.spec b/pacemaker.spec index eae7e5f..3442ac5 100644 --- a/pacemaker.spec +++ b/pacemaker.spec @@ -2,16 +2,27 @@ %global uname hacluster %global pcmk_docdir %{_docdir}/%{name} -%global specversion 2 -%global upstream_version Pacemaker-1.1.6 -%global upstream_prefix Pacemaker-1-1 +%global specversion 1 +%global upstream_version 89678d4 +%global upstream_prefix ClusterLabs-pacemaker # 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}}} +%{!?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}}} + +# Compatibility macro wrappers for legacy RPM versions that do not +# support conditional builds +%{!?bcond_without: %{expand: %%global bcond_without() %%{expand:%%%%{!?_without_%%{1}:%%%%global with_%%{1} 1}}}} +%{!?bcond_with: %{expand: %%global bcond_with() %%{expand:%%%%{?_with_%%{1}:%%%%global with_%%{1} 1}}}} +%{!?with: %{expand: %%global with() %%{expand:%%%%{?with_%%{1}:1}%%%%{!?with_%%{1}:0}}}} +%{!?without: %{expand: %%global without() %%{expand:%%%%{?with_%%{1}:0}%%%%{!?with_%%{1}:1}}}} + +# Conditionals +# Invoke "rpmbuild --without " or "rpmbuild --with " +# to disable or enable specific features # Supported cluster stacks, must support at least one %bcond_without cman @@ -44,74 +55,77 @@ %endif %if %{with pre_release} -%global pcmk_release 0.%{specversion}.%{upstream_version}.hg +%global pcmk_release 0.%{specversion}.%{upstream_version}.git %else %global pcmk_release %{specversion} %endif -Name: pacemaker -Summary: Scalable High-Availability cluster resource manager -Version: 1.1.6 -Release: %{pcmk_release}%{?dist} -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 +Name: pacemaker +Summary: Scalable High-Availability cluster resource manager +Version: 1.1.6 +Release: %{pcmk_release}%{?dist} +License: GPLv2+ and LGPLv2+ +Url: http://www.clusterlabs.org +Group: System Environment/Daemons + +# export VER={upstream_version} +# wget --no-check-certificate -O ClusterLabs-pacemaker-${VER}.tar.gz https://github.com/ClusterLabs/pacemaker/tarball/${VER} +Source0: %{upstream_prefix}-%{upstream_version}.tar.gz +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)) +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %endif # Required for core functionality -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 +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: ncurses-devel openssl-devel libselinux-devel docbook-style-xsl resource-agents +BuildRequires: ncurses-devel openssl-devel libselinux-devel docbook-style-xsl resource-agents -%ifarch alpha %{ix86} x86_64 -BuildRequires: lm_sensors-devel -%endif - %if %{with cman} -BuildRequires: clusterlib-devel +BuildRequires: clusterlib-devel %endif %if %{with esmtp} -BuildRequires: libesmtp-devel +BuildRequires: libesmtp-devel %endif %if %{with snmp} -BuildRequires: net-snmp-devel +%ifarch alpha %{ix86} x86_64 +BuildRequires: lm_sensors-devel +%endif + +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 +BuildRequires: corosynclib-devel %endif %if %{with heartbeat} # Do not require heartbeat, the admin should select which stack to use and install it -BuildRequires: heartbeat-devel heartbeat-libs >= 3.0.0 +BuildRequires: heartbeat-devel heartbeat-libs >= 3.0.0 %endif %if %{with doc} -BuildRequires: asciidoc help2man +BuildRequires: asciidoc help2man %if %{with publican} %ifarch %{ix86} x86_64 -BuildRequires: publican inkscape +BuildRequires: publican inkscape %endif %endif %endif @@ -131,10 +145,10 @@ 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 Pacemaker clusters -Group: System Environment/Daemons -Requires: %{name}-libs = %{version}-%{release} +License: GPLv2+ and LGPLv2+ +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 @@ -145,9 +159,9 @@ 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: Core Pacemaker libraries -Group: System Environment/Daemons +License: GPLv2+ and LGPLv2+ +Summary: Core Pacemaker libraries +Group: System Environment/Daemons %description -n %{name}-libs Pacemaker is an advanced, scalable High-Availability cluster resource @@ -157,10 +171,10 @@ The %{name}-libs package contains shared libraries needed for cluster nodes and those just running the CLI tools. %package -n %{name}-cluster-libs -License: GPLv2+ and LGPLv2+ -Summary: Cluster Libraries used by Pacemaker -Group: System Environment/Daemons -Requires: %{name}-libs = %{version}-%{release} +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 @@ -170,17 +184,18 @@ 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+ -Summary: Pacemaker development package -Group: Development/Libraries -Requires: %{name}-libs = %{version}-%{release} -Requires: cluster-glue-libs-devel libtool-ltdl-devel -Requires: libxml2-devel libxslt-devel bzip2-devel glib2-devel +License: GPLv2+ and LGPLv2+ +Summary: Pacemaker development package +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-cluster-libs = %{version}-%{release} +Requires: cluster-glue-libs-devel libtool-ltdl-devel +Requires: libxml2-devel libxslt-devel bzip2-devel glib2-devel %if %{with corosync} -Requires: corosynclib-devel +Requires: corosynclib-devel %endif %if %{with heartbeat} -Requires: heartbeat-devel +Requires: heartbeat-devel %endif %description -n %{name}-libs-devel @@ -191,21 +206,21 @@ The %{name}-libs-devel package contains headers and shared libraries for developing tools for Pacemaker. -%package cts -License: GPLv2+ and LGPLv2+ -Summary: Test framework for cluster-related technologies like Pacemaker -Group: System Environment/Daemons -Requires: python +%package cts +License: GPLv2+ and LGPLv2+ +Summary: Test framework for cluster-related technologies like Pacemaker +Group: System Environment/Daemons +Requires: python -%description cts +%description cts Test framework for cluster-related technologies like Pacemaker -%package doc -License: GPLv2+ and LGPLv2+ -Summary: Documentation for Pacemaker -Group: Documentation +%package doc +License: GPLv2+ and LGPLv2+ +Summary: Documentation for Pacemaker +Group: Documentation -%description doc +%description doc Documentation for Pacemaker. Pacemaker is an advanced, scalable High-Availability cluster resource @@ -219,7 +234,7 @@ manager for Linux-HA (Heartbeat) and/or Corosync. # # '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 +# when building on machines in timezones 'behind' the one the # commit occurred in - which seriously confuses 'make' find . -exec touch \{\} \; @@ -230,25 +245,26 @@ find . -exec touch \{\} \; eval `objdump --headers --private-headers /usr/bin/perl | grep RPATH | awk '{print "export LD_LIBRARY_PATH="$2}'` %endif -%{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-version=%{version}-%{release} \ - --enable-fatal-warnings=no +# RHEL <= 5 does not support --docdir +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-version=%{version}-%{release} \ + --enable-fatal-warnings=no -make %{_smp_mflags} +make %{_smp_mflags} docdir=%{pcmk_docdir} %install rm -rf %{buildroot} -make DESTDIR=%{buildroot} install +make DESTDIR=%{buildroot} docdir=%{pcmk_docdir} install mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig install -m 644 mcp/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker @@ -278,9 +294,9 @@ rm -f %{buildroot}/%{_libdir}/service_crm.so 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 + D=`dirname $F` + mkdir -p ${GCOV_BASE}/$D + cp $F ${GCOV_BASE}/$D done %endif @@ -292,8 +308,8 @@ 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 @@ -327,6 +343,10 @@ fi %{_sbindir}/crm_node %{_sbindir}/attrd_updater %{_sbindir}/fence_legacy +%{_sbindir}/fence_pcmk +%{_bindir}/ccs2cib +%{_bindir}/ccs_flatten +%{_bindir}/disable_rgmanager %{_sbindir}/stonith_admin %if %{with heartbeat} @@ -335,6 +355,17 @@ fi %exclude %{_sbindir}/crm_uuid %endif +%if %{with doc} +%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/pacemakerd.* +%doc %{_mandir}/man8/stonith_admin.* +%endif + %doc COPYING %doc AUTHORS %doc ChangeLog @@ -369,8 +400,14 @@ fi %{_sbindir}/crm_ticket %{py_sitedir}/crm %if %{with doc} -%doc %{_mandir}/man7/* %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/pacemakerd.* +%exclude %{_mandir}/man8/stonith_admin.* %endif %doc COPYING @@ -420,6 +457,10 @@ fi %doc AUTHORS %changelog +* Mon Sep 26 2011 Andrew Beekhof 1.1.6-3 +- New upstream tarball: 89678d4 +- Move man pages to the correct subpackages + * Mon Sep 26 2011 Andrew Beekhof 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 diff --git a/sources b/sources index 044e20e..a07e799 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -70a3605231977c3df0f25439d0d5551e Pacemaker-1.1.6.tar.bz2 +f3f5a66cc7c8f4a3104f66942c14b618 ClusterLabs-pacemaker-89678d4.tar.gz