--- /dev/null
+#!/bin/sh
+#
+# csync2 This shell script takes care of starting and stopping csync2
+#
+# chkconfig: 345 90 25
+# description: csync2 daemon
+# processname: csync2
+#
+# pidfile: /var/run/csync2.pid
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down csync2
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+# Get service configuration
+[ -f /etc/sysconfig/csync2 ] && . /etc/sysconfig/csync2
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ # Start daemons.
+ if [ ! -f /var/lock/subsys/csync2 ]; then
+ msg_starting csync2
+ daemon --fork csync2 -ii ${CSYNC2_OPTIONS}
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/csync2
+ else
+ msg_already_running csync2
+ fi
+ ;;
+ stop)
+ # Stop daemons.
+ if [ -f /var/lock/subsys/csync2 ]; then
+ msg_stopping csync2
+ killproc csync2
+ rm -f /var/lock/subsys/csync2 >/dev/null 2>&1
+ else
+ msg_not_running csync2
+ fi
+ ;;
+ restart|reload|force-restart|force-reload)
+ $0 stop
+ $0 start
+ exit $?
+ ;;
+ status)
+ status csync2 csync2
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|reload|force-restart|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL
-# TODO:
-# - inetd subpackage/files
Summary: Cluster sync tool
Summary(pl.UTF-8): Narzędzie do synchronizacji klastra
Name: csync2
Version: 1.33
-Release: 0.5
+Release: 0.9
License: GPL v2
Group: Daemons
Source0: http://oss.linbit.com/csync2/%{name}-%{version}.tar.gz
# Source0-md5: e16e3c0f4285439cef09a6b63319a0b0
+Source1: %{name}.init
+Source2: %{name}.inet
+Source3: %{name}.sysconfig
Patch0: %{name}-man_fix.patch
URL: http://oss.linbit.com/csync2/
BuildRequires: bison
obsługiwać usuwanie plików i wykrywać konflikty. Jest praktyczne dla
klastrów HA, HPC, COW oraz farm serwerów.
+%package -n csync2-inetd
+Summary: Files necessary to run csync2 in inetd service mode
+Summary(pl.UTF-8): Pliki niezbędne do uruchomienia csync2 w trybie usługi inetd
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+Requires: rc-inetd
+Provides: csyncd
+Provides: csyncd-inetd
+Obsoletes: csyncd
+Obsoletes: csync2-standalone
+Obsoletes: csyncd-standalone
+
+%description -n csync2-inetd
+Csync2 is a cluster synchronization tool. It can be used to keep files
+on multiple hosts in a cluster in sync. Csync2 can handle complex
+setups with much more than just 2 hosts, handle file deletions and can
+detect conflicts. It is expedient for HA-clusters, HPC-clusters, COWs
+and server farms.
+
+%description -n csync2-inetd -l pl.UTF-8
+Csync2 to narzędzie do synchronizacji klastra. Może być używane do
+utrzymywania zgodności plików na wielu hostach w klastrze. Csync2 jest
+w stanie obsłużyć złożone konfiguracje z więcej niż 2 hostami,
+obsługiwać usuwanie plików i wykrywać konflikty. Jest praktyczne dla
+klastrów HA, HPC, COW oraz farm serwerów.
+
+%package -n csync2-standalone
+Summary: Files necessary to run csync2 in standalone daemon mode
+Summary(pl.UTF-8): Pliki niezbędne do uruchomienia csync2 w trybie samodzielnego serwera
+Group: Networking/Daemons
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name} = %{version}-%{release}
+Provides: csyncd
+Provides: csyncd-standalone
+Obsoletes: csyncd
+Obsoletes: csync2-inetd
+Obsoletes: csyncd-inetd
+
+%description -n csync2-standalone
+Csync2 is a cluster synchronization tool. It can be used to keep files
+on multiple hosts in a cluster in sync. Csync2 can handle complex
+setups with much more than just 2 hosts, handle file deletions and can
+detect conflicts. It is expedient for HA-clusters, HPC-clusters, COWs
+and server farms.
+
+%description -n csync2-standalone -l pl.UTF-8
+Csync2 to narzędzie do synchronizacji klastra. Może być używane do
+utrzymywania zgodności plików na wielu hostach w klastrze. Csync2 jest
+w stanie obsłużyć złożone konfiguracje z więcej niż 2 hostami,
+obsługiwać usuwanie plików i wykrywać konflikty. Jest praktyczne dla
+klastrów HA, HPC, COW oraz farm serwerów.
+
%prep
%setup -q
%patch0 -p1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_var}/lib/csync2
+install -d $RPM_BUILD_ROOT{%{_var}/lib/csync2,/etc/{sysconfig/rc-inetd,rc.d/init.d}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+
%clean
rm -rf $RPM_BUILD_ROOT
+%post -n csync2-inetd
+%service -q rc-inetd reload
+
+%postun -n csync2-inetd
+if [ "$1" = "0" ]; then
+ %service -q rc-inetd reload
+fi
+
+%post -n csync2-standalone
+/sbin/chkconfig --add csync2
+%service csync2 restart "csync2 server"
+
+%preun -n csync2-standalone
+if [ "$1" = "0" ]; then
+ %service csync2 stop
+ /sbin/chkconfig --del csync2
+fi
+
%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog README TODO csync2.xinetd csync2_locheck.sh paper.pdf
%attr(755,root,root) %{_sbindir}/csync2-compare
%dir %{_var}/lib/csync2
%{_mandir}/man1/*.1*
+
+%files -n csync2-inetd
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/%{name}
+
+%files -n csync2-standalone
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%attr(754,root,root) /etc/rc.d/init.d/%{name}