diff --git a/rpcbind.service b/rpcbind.service new file mode 100644 index 0000000..84184a9 --- /dev/null +++ b/rpcbind.service @@ -0,0 +1,12 @@ +[Unit] +Description=RPC bind service +Requires=rpcbind.socket +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/sbin/rpcbind -w + +[Install] +WantedBy=multi-user.target +Also=rpcbind.socket diff --git a/rpcbind.socket b/rpcbind.socket new file mode 100644 index 0000000..d63c1d9 --- /dev/null +++ b/rpcbind.socket @@ -0,0 +1,8 @@ +[Unit] +Description=RPCbind Server Activation Socket + +[Socket] +ListenStream=/var/run/rpcbind.sock + +[Install] +WantedBy=sockets.target diff --git a/rpcbind.spec b/rpcbind.spec index 435e2c3..c299d75 100644 --- a/rpcbind.spec +++ b/rpcbind.spec @@ -2,7 +2,7 @@ Name: rpcbind Version: 0.2.0 -Release: 11%{?dist} +Release: 12%{?dist} Summary: Universal Addresses to RPC Program Number Mapper Group: System Environment/Daemons License: BSD @@ -11,6 +11,9 @@ URL: http://nfsv4.bullopensource.org BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) Source0: http://downloads.sourceforge.net/rpcbind/%{name}-%{version}.tar.bz2 Source1: rpcbind.init +Source2: rpcbind.service +Source3: rpcbind.socket +%define rpcbind_services %{SOURCE2} %{SOURCE3} Patch001: rpcbind-0_2_1-rc3.patch @@ -60,8 +63,7 @@ make all %install rm -rf %{buildroot} -mkdir -p %{buildroot}/sbin -mkdir -p %{buildroot}/usr/sbin +mkdir -p %{buildroot}{/sbin,/usr/sbin,/lib/systemd/system} mkdir -p %{buildroot}%{_sysconfdir}/rc.d/init.d mkdir -p %{buildroot}%{_mandir}/man8 mkdir -p %{buildroot}/var/lib/rpcbind @@ -70,6 +72,10 @@ make DESTDIR=$RPM_BUILD_ROOT install mv -f ${RPM_BUILD_ROOT}%{_bindir}/rpcbind ${RPM_BUILD_ROOT}/sbin mv -f ${RPM_BUILD_ROOT}%{_bindir}/rpcinfo ${RPM_BUILD_ROOT}%{_sbindir} install -m 755 ${RPM_SOURCE_DIR}/rpcbind.init ${RPM_BUILD_ROOT}%{_initddir}/rpcbind +for service in %{rpcbind_services} ; do + install -m 644 $service $RPM_BUILD_ROOT/lib/systemd/system +done + %clean rm -rf %{buildroot} @@ -92,19 +98,25 @@ if [ -z "$rpcid" -o "$rpcid" != "32" ]; then -M -s /sbin/nologin -u 32 rpc > /dev/null 2>&1 fi %post -/sbin/chkconfig --add %{name} +if [ $1 -eq 1 ]; then + # Package install, not upgrade + /bin/systemctl enable rpcbind.service >/dev/null 2>&1 || : +fi %preun if [ $1 -eq 0 ]; then - service rpcbind stop > /dev/null 2>&1 - /sbin/chkconfig --del %{name} + # Package removal, not upgrade + /bin/systemctl disable rpcbind.service >/dev/null 2>&1 || : + /bin/systemctl stop rpcbind.service >/dev/null 2>&1 || : /usr/sbin/userdel rpc 2>/dev/null || : /usr/sbin/groupdel rpc 2>/dev/null || : rm -rf /var/lib/rpcbind fi %postun +/bin/systemctl daemon-reload >/dev/null 2>&1 || : if [ "$1" -ge "1" ]; then - service rpcbind condrestart > /dev/null 2>&1 + # Package upgrade, not uninstall + /bin/systemctl try-restart rpcbind.service >/dev/null 2>&1 || : fi %files @@ -114,10 +126,15 @@ fi %{_sbindir}/rpcinfo %{_mandir}/man8/* %config %{_initddir}/rpcbind +/lib/systemd/system/*.service +/lib/systemd/system/*.socket %dir %attr(700,rpc,rpc) /var/lib/rpcbind %changelog +* Thu Jul 7 2011 Steve Dickson - 0.2.0-12 +- Migrated SysV initscripts to systemd (bz 713574) + * Thu Mar 17 2011 Steve Dickson - 0.2.0-11 - Updated to the latest upstream release: rpcbind-0_2_1-rc3