--- /dev/null
+#!/bin/sh
+
+destunitdir=${1:-/tmp}
+
+# Do nothing if target is disabled
+[ -e /etc/systemd/system/multi-user.target.wants/ucarp.target ] || exit 0
+
+[ -f /etc/sysconfig/ucarp ] && . /etc/sysconfig/ucarp
+
+if [ -d $destunitdir/ucarp.target.wants ]; then
+ rm -f $destunitdir/ucarp.target.wants/ucarp@*.service
+else
+ mkdir -p $destunitdir/ucarp.target.wants
+fi
+
+for ip in $VIRTUAL_IPS; do
+ [ -L $destunitdir/ucarp.target.wants/ucarp@$ip.service ] && \
+ continue
+ ln -s /lib/systemd/system/ucarp@.service \
+ $destunitdir/ucarp.target.wants/ucarp@$ip.service
+done
Summary(pl.UTF-8): CARP (Common Address Redundancy Protocol) dla Uniksa
Name: ucarp
Version: 1.5.2
-Release: 3
+Release: 4
License: BSD
Group: Applications/Networking
Source0: ftp://ftp.ucarp.org/pub/ucarp/%{name}-%{version}.tar.gz
Source2: %{name}.sysconfig
Source3: %{name}.config.template
Source4: %{name}.tmpfiles
+Source5: ucarp-service-generator
+Source6: ucarp.target
+Source7: ucarp@.service
URL: http://www.ucarp.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-tools
BuildRequires: libpcap-devel
BuildRequires: libtool
+BuildRequires: rpmbuild(macros) >= 1.671
+BuildRequires: systemd-devel
+Requires(post,preun): /sbin/chkconfig
+Requires(post,preun,postun): systemd-units >= 38
+Requires: systemd-units >= 38
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name} \
$RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
$RPM_BUILD_ROOT%{_varrun}/%{name} \
- $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
+ $RPM_BUILD_ROOT/usr/lib/tmpfiles.d \
+ $RPM_BUILD_ROOT{%{systemdtmpfilesdir},%{systemdunitdir}} \
+ $RPM_BUILD_ROOT/lib/systemd/system-generators
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
+install -p %{SOURCE5} $RPM_BUILD_ROOT/lib/systemd/system-generators/ucarp-service-generator
+install -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/ucarp.target
+install -p %{SOURCE7} $RPM_BUILD_ROOT%{systemdunitdir}/ucarp@.service
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ucarp.service
+
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add ucarp
%service ucarp restart "UCARP"
+%systemd_post ucarp.target
%preun
if [ "$1" = "0" ]; then
%service ucarp stop
/sbin/chkconfig --del ucarp
fi
+%systemd_preun ucarp.target
+
+%postun
+%systemd_reload
%files
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%attr(755,root,root) /lib/systemd/system-generators/%{name}-service-generator
+%{systemdunitdir}/%{name}.service
+%{systemdunitdir}/%{name}.target
+%{systemdunitdir}/%{name}@.service
%attr(755,root,root) %{_sbindir}/*
%dir %{_sysconfdir}/%{name}
%{_sysconfdir}/%{name}/config.template