ecd58e8ed1
This is a working/tested version of the prev request - Update systemd patches - Add systemd socket activation patch, based on http://www.spinics.net/lists/linux-nfs/msg14371.html but does not bundle sd-daemon.[c|h] it uses libsystemd-daemon instead. - Update to version 0.2.0_git201103171419 - Fix rpm source tags to not be conditional. - Add systemd units OBS-URL: https://build.opensuse.org/request/show/98008 OBS-URL: https://build.opensuse.org/package/show/network/rpcbind?expand=0&rev=15
159 lines
4.6 KiB
RPMSpec
159 lines
4.6 KiB
RPMSpec
#
|
|
# spec file for package rpcbind
|
|
#
|
|
# 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/
|
|
#
|
|
|
|
|
|
|
|
Name: rpcbind
|
|
License: BSD-3-Clause
|
|
Group: Productivity/Networking/System
|
|
Version: 0.2.0_git201103171419
|
|
Release: 1
|
|
Summary: Transport independent RPC portmapper
|
|
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: tcpd-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: pkgconfig
|
|
Provides: portmap = 6.0+git20070716
|
|
Obsoletes: portmap <= 6.0+git20070716
|
|
# hopefully soon we will have this autogenerated from rpm
|
|
Provides: sysvinit(portmap) sysvinit(rpcbind)
|
|
PreReq: %insserv_prereq %fillup_prereq /sbin/checkproc sysvinit(network) syslog
|
|
Patch0: 0001-systemd-add-support-for-system-bus-activation.patch
|
|
%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
|
|
|
|
%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
|