rpcbind/rpcbind.spec
Marcus Meissner 5626fd603f Accepting request 114480 from home:jeff_mahoney:branches:network
- socket-activation: Fix rpcbind.service to use separate
  sockets (bnc#757909).

- socket-activation: don't unlink socket we didn't create (bnc#757667).

OBS-URL: https://build.opensuse.org/request/show/114480
OBS-URL: https://build.opensuse.org/package/show/network/rpcbind?expand=0&rev=17
2012-04-23 21:00:10 +00:00

163 lines
4.8 KiB
RPMSpec

#
# spec file for package rpcbind
#
# Copyright (c) 2012 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/
#
Name: rpcbind
Version: 0.2.0_git201103171419
Release: 0
Summary: Transport independent RPC portmapper
License: BSD-3-Clause
Group: Productivity/Networking/System
Url: http://git.infradead.org/users/steved/rpcbind.git
Source: %{name}-%{version}.tar.bz2
Source1: rpcbind.init
Source2: sysconfig.rpcbind
Source3: rpcbind.xml
Source4: pmap_set.c
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libtirpc-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: tcpd-devel
Provides: portmap = 6.0+git20070716
Obsoletes: portmap <= 6.0+git20070716
# hopefully soon we will have this autogenerated from rpm
Provides: sysvinit(portmap)
Provides: sysvinit(rpcbind)
PreReq: %insserv_prereq %fillup_prereq /sbin/checkproc sysvinit(network) syslog
Patch0: 0001-systemd-add-support-for-system-bus-activation.patch
Patch1: socket-activation-don-t-unlink-socket-we-didn-t-create
Patch2: socket-activation-fix-rpcbind-service-to-use-separate-sockets
%define statefile /var/lib/portmap.state
%if 0%{?suse_version} > 1140
BuildRequires: systemd-devel
%{?systemd_requires}
%define has_systemd 1
%endif
%description
Rpcbind is a replacement for portmap. Whereas portmap supports only UDP
and TCP transports over INET (IPv4), rpcbind can be configured to work
on various transports supported by the TI-RPC. This includes TCP and
UDP over IPv6. Moreover, rpcbind provides additional functions in
regards to portmap.
Authors:
--------
Gilles Quillard <gilles.quillard@bull.net>
Vincent ROQUETA <vincent.roqueta@ext.bull.net>
%prep
%setup -q
cp %{SOURCE4} .
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
autoreconf -fiv
export CFLAGS="$RPM_OPT_FLAGS -fpie"
export LDFLAGS="-pie -Wl,-z,relro,-z,now"
%configure \
--bindir=/sbin \
--enable-libwrap \
--enable-warmstarts \
--with-statedir=%{_localstatedir}/lib/rpcbind
%{__make} %{?jobs:-j%jobs}
%{__cc} -fwhole-program -Wl,-z,relro,-z,now %{optflags} pmap_set.c -o pmap_set
%install
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/init.d/
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d/rpcbind
ln -s /etc/init.d/rpcbind $RPM_BUILD_ROOT/sbin/rcrpcbind
mkdir -p $RPM_BUILD_ROOT%_localstatedir/lib/rpcbind
# fillup template
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/var/adm/fillup-templates/
mkdir -p $RPM_BUILD_ROOT%_datadir/omc/svcinfo.d
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%_datadir/omc/svcinfo.d/
#
install -m 755 pmap_set $RPM_BUILD_ROOT/sbin/pmap_set2
%clean
rm -rf $RPM_BUILD_ROOT
%pre
# upgrade case from portmap
# 1. if portmap is running, dump portmap tables
if test -x /sbin/portmap && /sbin/checkproc /sbin/portmap; then
rm -f %statefile
test -x /sbin/pmap_dump && /sbin/pmap_dump > %statefile
fi
# 2. disable portmap service to be able to enable rpcbind
if test -x /sbin/portmap && /sbin/chkconfig -c portmap 3; then
/sbin/insserv -f -r portmap
fi
%if 0%{?has_systemd}
%service_add_pre %{name}.service %{name}.socket
%endif
%preun
%stop_on_removal rpcbind
%if 0%{?has_systemd}
%service_del_preun %{name}.service %{name}.socket
%endif
%post
%fillup_and_insserv rpcbind
# if portmap is running, we need to stop portmap *now*,
# start rpcbind and restore the old tables
if test -r %statefile; then
/etc/init.d/portmap stop > /dev/null || :
/etc/init.d/rpcbind start > /dev/null || :
/sbin/pmap_set2 < %statefile
rm -f %statefile
fi
%if 0%{?has_systemd}
%service_add_post %{name}.service %{name}.socket
%endif
%postun
%restart_on_update rpcbind
%insserv_cleanup
%if 0%{?has_systemd}
%service_del_postun %{name}.service %{name}.socket
%endif
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS README
/sbin/pmap_set2
/sbin/rpcbind
/sbin/rpcinfo
%{_mandir}/*/*
%config /etc/init.d/rpcbind
/sbin/rcrpcbind
%{_localstatedir}/lib/rpcbind
/var/adm/fillup-templates/sysconfig.rpcbind
%{_datadir}/omc/svcinfo.d/rpcbind.xml
%if 0%{?has_systemd}
%{_unitdir}/%{name}.service
%{_unitdir}/%{name}.socket
%endif
%changelog