File openais.spec of Package openais

#
# spec file for package openais
#
# Copyright (c) 2011 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/
#


%if 0%{?suse_version}
%define _libexecdir %{_libdir}
%endif

Name:           openais
Summary:        The OpenAIS Standards-Based Cluster Framework executive and APIs
Version:        1.1.4
Release:        1
License:        BSD3c
Group:          Productivity/Clustering/HA
Url:            http://www.openais.org/
Source0:        http://www.osdl.org/downloads/openais-%{version}/openais-%{version}.tar.gz
Patch1:         openais-suse-init.patch
# Runtime bits
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires:       corosync
Requires:       libopenais3 = %{version}-%{release}
# Setup/build bits
BuildRequires:  libcorosync-devel
%define buildtrunk 0
%{?_with_buildtrunk: %define buildtrunk 1}
%if %{buildtrunk}
BuildRequires:  autoconf automake
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%prep
%setup -q -n openais-%{version}
%patch1 -p1

%build
%if %{buildtrunk}
./autogen.sh
%endif
%{configure}
make %{_smp_mflags}

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_initrddir}
install -m 755 init/suse %{buildroot}%{_initrddir}/openais
%if 0%{?suse_version}
ln -sf ../../etc/init.d/openais %{buildroot}%{_sbindir}/rcopenais
%endif
mkdir -p %{buildroot}%{_sysconfdir}/ais
cat<<EOF > %{buildroot}%{_sysconfdir}/ais/openais.conf
# This configuration file is not used any more
# Please refer to %{_sysconfdir}/corosync/corosync.conf
EOF
## tree fixup
# drop static libs
rm -f %{buildroot}%{_libdir}/*.a
# drop docs and html docs for now
rm -rf %{buildroot}%{_docdir}/*
# the docdir is /usr/share/doc/<pkg> in the configuration
rm -rf %{buildroot}%{_datadir}/doc/*

%clean
rm -rf %{buildroot}

%description
This package contains the openais executive, openais service handlers,
default configuration files and init script.



Authors:
--------
    Steven Dake
    Mark Haverkamp
    Muni Bajpai
    Daniel McNiel
    Miyotaka Sakai
    Daniel Stodden
    Kristen Smith
    Patrick Caulfield
    Fabien Thomas
    Hans Feldt
    Lars Holm
    Anders Eriksson
    Renaud Metrich
    Frederic Hermann
    Alejandro Lopez
    David Teigland
    Robert Peterson
    Abhijith Das

%pre
ais2coroconf() {
# rules:
# consensus > 1.2 * token
	conf=$1
	filter=`mktemp`
	awk '
	BEGIN{cons=0; tok=0}
	$1=="token:"{tok=$2}
	$1=="consensus:"{cons=$2}
	$1=="timestamp:"{timestamp=$2}
	END{
		if( cons>0 && tok>0 && 1.2*cons <= tok ) {
			newcons = tok*1.2;
			printf "$1==\"consensus:\"{$2=%d}\n",newcons
			printf "WARN: consensus in corosync.conf adjusted from %d to %d\n",cons,newcons > "/dev/stderr"
		}
		if( timestamp == "on" ) {
			printf "$1==\"timestamp:\"{$2=\"off\"}\n"
			printf "WARN: timestamp in corosync.conf set to off\n" > "/dev/stderr"
		}
	}
	' $conf >> $filter
	echo '{print}' >> $filter
	awk -f $filter $conf
	rm -f $filter
}
if [ -f %{_sysconfdir}/ais/openais.conf ]; then
  mkdir -p %{_sysconfdir}/corosync
  [ -f %{_sysconfdir}/ais/authkey -a ! -f %{_sysconfdir}/corosync/authkey ] &&
	  cp -p %{_sysconfdir}/ais/authkey %{_sysconfdir}/corosync
  if [ ! -f %{_sysconfdir}/corosync/corosync.conf ]; then
	# Only replace corosync.conf if existing openais.conf has actual content,
	# i.e. at least one non-comment, non-whitespace line (bnc#611545)
	if grep -q -v '^\([[:space:]]*#\|[[:space:]]*$\)' %{_sysconfdir}/ais/openais.conf; then
	  ais2coroconf %{_sysconfdir}/ais/openais.conf > %{_sysconfdir}/corosync/corosync.conf
	fi
  fi
fi

%post
%{fillup_and_insserv -n openais}
# This code addresses bnc#549579 - a previous package version wrongly
# disabled openais in %postun, which this needs to work around:
if chkconfig -c openais; then
	touch /var/run/start_open_ais_on_boot
fi

%posttrans
if test -f /var/run/start_open_ais_on_boot; then
	chkconfig --add openais
	rm -f /var/run/start_open_ais_on_boot 
fi

%preun
%stop_on_removal openais

%postun
%restart_on_update openais
%{insserv_cleanup}

%files
%defattr(-,root,root,-)
%doc LICENSE README.amf
%dir %{_sysconfdir}/corosync
%dir %{_sysconfdir}/ais
%config(noreplace) %{_sysconfdir}/corosync/amf.conf.example
%config(missingok) %{_sysconfdir}/ais/openais.conf
%{_initrddir}/openais
%if 0%{?suse_version}
%{_sbindir}/rcopenais
%endif
%dir %{_libexecdir}/lcrso
%{_libexecdir}/lcrso/openaisserviceenable.lcrso
%{_libexecdir}/lcrso/service_amf.lcrso
%{_libexecdir}/lcrso/service_ckpt.lcrso
%{_libexecdir}/lcrso/service_clm.lcrso
%{_libexecdir}/lcrso/service_evt.lcrso
%{_libexecdir}/lcrso/service_lck.lcrso
%{_libexecdir}/lcrso/service_msg.lcrso
%{_libexecdir}/lcrso/service_tmr.lcrso
%{_mandir}/man8/openais_overview.8*
%{_mandir}/man5/openais.conf.5*
%{_mandir}/man5/amf.conf.5*
%{_sbindir}/aisexec
%{_sbindir}/openais-instantiate

%package -n libopenais3
License:        BSD3c
Summary:        The openais Standards-Based Cluster Framework libraries
Group:          Productivity/Clustering/HA
Obsoletes:      libopenais2
Conflicts:      libopenais2

%description -n libopenais3
This package contains openais libraries.



Authors:
--------
    Steven Dake
    Mark Haverkamp
    Muni Bajpai
    Daniel McNiel
    Miyotaka Sakai
    Daniel Stodden
    Kristen Smith
    Patrick Caulfield
    Fabien Thomas
    Hans Feldt
    Lars Holm
    Anders Eriksson
    Renaud Metrich
    Frederic Hermann
    Alejandro Lopez
    David Teigland
    Robert Peterson
    Abhijith Das

%files -n libopenais3
%defattr(-,root,root,-)
%doc LICENSE
%{_libdir}/libSaAmf.so.*
%{_libdir}/libSaCkpt.so.*
%{_libdir}/libSaClm.so.*
%{_libdir}/libSaEvt.so.*
%{_libdir}/libSaLck.so.*
%{_libdir}/libSaMsg.so.*
%{_libdir}/libSaTmr.so.*

%post -n libopenais3 -p /sbin/ldconfig

%postun -n libopenais3 -p /sbin/ldconfig

%package -n libopenais-devel
License:        BSD3c
Summary:        The openais Standards-Based Cluster Framework libraries
Group:          Development/Libraries/C and C++
Requires:       libopenais3 = %{version}-%{release}
Requires:       pkgconfig
Provides:       openais-devel = %{version}
Obsoletes:      openais-devel < 0.92
Conflicts:      openais-devel < 0.92

%description -n libopenais-devel
This package contains the libraries and include files used to develop
using openais APIs.



Authors:
--------
    Steven Dake
    Mark Haverkamp
    Muni Bajpai
    Daniel McNiel
    Miyotaka Sakai
    Daniel Stodden
    Kristen Smith
    Patrick Caulfield
    Fabien Thomas
    Hans Feldt
    Lars Holm
    Anders Eriksson
    Renaud Metrich
    Frederic Hermann
    Alejandro Lopez
    David Teigland
    Robert Peterson
    Abhijith Das

%files -n libopenais-devel
%defattr(-,root,root,-)
%doc LICENSE
%dir %{_includedir}/openais/
%{_includedir}/openais/saAis.h
%{_includedir}/openais/saAmf.h
%{_includedir}/openais/saCkpt.h
%{_includedir}/openais/saClm.h
%{_includedir}/openais/saEvt.h
%{_includedir}/openais/saLck.h
%{_includedir}/openais/saMsg.h
%{_includedir}/openais/saTmr.h
%{_libdir}/libSaAmf.so
%{_libdir}/libSaCkpt.so
%{_libdir}/libSaClm.so
%{_libdir}/libSaEvt.so
%{_libdir}/libSaLck.so
%{_libdir}/libSaMsg.so
%{_libdir}/libSaTmr.so
%{_libdir}/pkgconfig/*.pc

%changelog
openSUSE Build Service is sponsored by