# # spec file for package cluster-glue (Version 1.0.3) # # Copyright (c) 2010 SUSE LINUX Products 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/ # # norootforbuild %define uid 90 %define gname haclient %define uname hacluster %if 0%{?sles_version} == 11 # these three architectures have a problem with glib2 %ifarch ppc ppc64 ia64 %define warnings_fatal no %else %define warnings_fatal yes %endif %else # Disable warnings for Factory %define warnings_fatal no %endif # Directory where we install documentation %global glue_docdir %{_defaultdocdir}/%{name} Name: cluster-glue Summary: The Heartbeat Subsystem for High-Availability Linux Version: 1.0.3 Release: 0. License: GPL v2 only; LGPL v2.1 or later Url: http://linux-ha.org/ Group: Productivity/Clustering/HA Source: cluster-glue.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build AutoReqProv: on BuildRequires: autoconf automake e2fsprogs-devel glib2-devel libtool libxml2-devel pkgconfig python-devel BuildRequires: OpenIPMI-devel libnet net-snmp-devel openhpi-devel BuildRequires: docbook-xsl-stylesheets docbook_4 libxslt Conflicts: heartbeat-common < 3.0.2 Obsoletes: heartbeat-common < 3.0.2 Requires(pre): /usr/sbin/groupadd /usr/bin/getent /usr/sbin/useradd # SLES10 needs tcpd-devel but doesn't have libcurl %if 0%{?suse_version} < 1020 BuildRequires: tcpd-devel BuildRequires: sgml-skel %else BuildRequires: libcurl-devel %endif %description heartbeat is a sophisticated multinode resource manager for High Availability clusters. It can failover arbitrary resources, ranging from IP addresses over NFS to databases that are tied in via resource scripts. The resources can have arbitrary dependencies for ordering or placement between them. heartbeat contains a cluster membership layer, fencing, and local and clusterwide resource management functionality. 1.2/1.0 based 2-node only configurations are supported in a legacy mode. heartbeat implements the following kinds of heartbeats: - Serial ports - UDP/IPv4 broadcast, multi-cast, and unicast - IPv4 "ping" pseudo-cluster members. Authors: -------- Alan Robertson Andrew Beekhof Guochun Shi Horms Huang Zhen Lars Marowsky-Bree Sun Jiang Dong (See doc/AUTHORS) %package -n libglue2 License: GPL v2 only; LGPL v2.1 or later Summary: The Pacemaker scalable High-Availability cluster resource manager Group: Productivity/Clustering/HA Obsoletes: libheartbeat2 < 3.0.2 Conflicts: libheartbeat2 < 3.0.2 Requires: %{name} = %{version}-%{release} %description -n libglue2 A collection of libraries that are useful for writing cluster managers such as Pacemaker. Authors: -------- Alan Robertson Andrew Beekhof Guochun Shi Horms Huang Zhen Lars Marowsky-Bree Sun Jiang Dong (See doc/AUTHORS) %package -n libglue-devel License: GPL v2 only; LGPL v2.1 or later Summary: The Heartbeat Subsystem for High-Availability Linux Group: Productivity/Clustering/HA Requires: %{name} = %{version}-%{release} Requires: libglue2 = %{version}-%{release} Conflicts: libheartbeat-devel < 3.0.2 Obsoletes: libheartbeat-devel < 3.0.2 %description -n libglue-devel heartbeat is a sophisticated multinode resource manager for High Availability clusters. It can failover arbitrary resources, ranging from IP addresses over NFS to databases that are tied in via resource scripts. The resources can have arbitrary dependencies for ordering or placement between them. heartbeat contains a cluster membership layer, fencing, and local and clusterwide resource management functionality. 1.2/1.0 based 2-node only configurations are supported in a legacy mode. heartbeat implements the following kinds of heartbeats: - Serial ports - UDP/IPv4 broadcast, multi-cast, and unicast - IPv4 "ping" pseudo-cluster members. Authors: -------- Alan Robertson Andrew Beekhof Guochun Shi Horms Huang Zhen Lars Marowsky-Bree Sun Jiang Dong (See doc/AUTHORS) %prep ########################################################### %setup -n cluster-glue -q ########################################################### %build CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}" export CFLAGS ./autogen.sh # SLES <= 10 does not support ./configure --docdir=, # hence, use this ugly hack %if 0%{?suse_version} < 1020 export docdir=%{glue_docdir} %configure \ --enable-fatal-warnings=%{warnings_fatal} \ --with-package-name=%{name} \ --with-daemon-group=%{gname} \ --with-daemon-user=%{uname} %else %configure \ --enable-fatal-warnings=%{warnings_fatal} \ --with-package-name=%{name} \ --with-daemon-group=%{gname} \ --with-daemon-user=%{uname} \ --docdir=%{glue_docdir} %endif make %{?_smp_mflags} ########################################################### %install ########################################################### make DESTDIR=$RPM_BUILD_ROOT install # Dont package static libs or compiled python find $RPM_BUILD_ROOT -name '*.a' -type f -print0 | xargs -0 rm -f find $RPM_BUILD_ROOT -name '*.la' -type f -print0 | xargs -0 rm -f find $RPM_BUILD_ROOT -name '*.pyc' -type f -print0 | xargs -0 rm -f find $RPM_BUILD_ROOT -name '*.pyo' -type f -print0 | xargs -0 rm -f test -d $RPM_BUILD_ROOT/sbin || mkdir $RPM_BUILD_ROOT/sbin ( cd $RPM_BUILD_ROOT/sbin ln -s /etc/init.d/logd rclogd ) ########################################################### %clean ########################################################### if [ -n "${RPM_BUILD_ROOT}" -a "${RPM_BUILD_ROOT}" != "/" ] then rm -rf $RPM_BUILD_ROOT fi rm -rf $RPM_BUILD_DIR/cluster-glue ########################################################### %pre if getent group %{gname} >/dev/null then : OK group haclient already present else /usr/sbin/groupadd -o -r -g %{uid} %{gname} 2>/dev/null || : fi if getent passwd %{uname} >/dev/null then : OK hacluster user already present else /usr/sbin/useradd -r -g %{gname} -c "heartbeat processes" \ -d %{_var}/lib/heartbeat/cores/%{uname} -o -u %{uid} \ %{uname} 2>/dev/null || : fi %preun %stop_on_removal logd %post %{insserv_force_if_yast logd} %postun %restart_on_update logd %insserv_cleanup %post -n libglue2 /sbin/ldconfig %postun -n libglue2 /sbin/ldconfig %files ########################################################### %defattr(-,root,root) %dir %{_libdir}/heartbeat %dir %{_var}/lib/heartbeat %dir %{_var}/lib/heartbeat/cores %dir %attr (0700, root, root) %{_var}/lib/heartbeat/cores/root %dir %attr (0700, nobody, nobody) %{_var}/lib/heartbeat/cores/nobody %dir %attr (0700, %{uname}, %{gname}) %{_var}/lib/heartbeat/cores/%{uname} %dir %{_libdir}/heartbeat/plugins %dir %{_libdir}/heartbeat/plugins/RAExec %dir %{_libdir}/heartbeat/plugins/InterfaceMgr %dir %{_libdir}/stonith %dir %{_libdir}/stonith/plugins %dir %{_libdir}/stonith/plugins/stonith2 %dir %{_datadir}/%{name} %{_datadir}/%{name}/ha_cf_support.sh %{_datadir}/%{name}/openais_conf_support.sh %{_datadir}/%{name}/utillib.sh %{_datadir}/%{name}/combine-logs.pl %{_datadir}/%{name}/ha_log.sh %{_sbindir}/ha_logger %{_sbindir}/hb_report %{_sbindir}/lrmadmin %{_sbindir}/meatclient %{_sbindir}/stonith %{_sbindir}/sbd %{_sysconfdir}/init.d/logd %doc %{_mandir}/man1/* %doc %{_mandir}/man8/* %doc AUTHORS %doc COPYING %doc logd/logd.cf %doc doc/stonith/README* /sbin/rclogd %{_libdir}/heartbeat/lrmd %{_libdir}/heartbeat/ha_logd %{_libdir}/heartbeat/plugins/RAExec/*.so %{_libdir}/heartbeat/plugins/InterfaceMgr/*.so %{_libdir}/stonith/plugins/external %exclude %{_libdir}/stonith/plugins/stonith2/null.so %exclude %{_libdir}/stonith/plugins/stonith2/ssh.so %{_libdir}/stonith/plugins/stonith2/*.so %{_libdir}/stonith/plugins/stonith2/*.py %{_libdir}/stonith/plugins/xen0-ha-dom0-stonith-helper %files -n libglue2 %defattr(-,root,root) %{_libdir}/lib*.so.* %doc AUTHORS %doc COPYING.LIB %files -n libglue-devel %defattr(-,root,root) %dir %{_libdir}/heartbeat %dir %{_libdir}/heartbeat/plugins %dir %{_libdir}/heartbeat/plugins/test %dir %{_datadir}/%{name} %{_libdir}/lib*.so %{_libdir}/heartbeat/ipctest %{_libdir}/heartbeat/ipctransientclient %{_libdir}/heartbeat/ipctransientserver %{_libdir}/heartbeat/transient-test.sh %{_libdir}/heartbeat/base64_md5_test %{_libdir}/heartbeat/logtest %{_includedir}/clplumbing %{_includedir}/heartbeat %{_includedir}/stonith %{_includedir}/pils %{_datadir}/%{name}/lrmtest %{_libdir}/heartbeat/plugins/test/test.so %{_libdir}/stonith/plugins/stonith2/null.so %{_libdir}/stonith/plugins/stonith2/ssh.so %doc AUTHORS %doc COPYING %doc COPYING.LIB %changelog