# # 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/ # # norootforbuild BuildRequires: libtirpc-devel BuildRequires: tcpd-devel BuildRequires: xz Name: rpcbind License: BSD3c Group: Productivity/Networking/System AutoReqProv: on Version: 0.2.0_git201007131952 Release: 13 Summary: Transport independent RPC portmapper Url: http://git.infradead.org/users/steved/rpcbind.git Source: %{name}-%{version}.tar.xz Source1: rpcbind.init Source2: sysconfig.rpcbind Source3: rpcbind.xml Source4: pmap_set.c BuildRoot: %{_tmppath}/%{name}-%{version}-build 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 %define statefile /var/lib/portmap.state %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 Vincent ROQUETA %prep %setup -q cp %{SOURCE4} . %build autoreconf -fi %configure --disable-static --with-pic \ --bindir=/sbin \ --enable-libwrap \ --enable-warmstarts \ --with-statedir=%{_localstatedir}/lib/rpcbind \ --enable-debug \ CFLAGS="$RPM_OPT_FLAGS -fpie" \ LDFLAGS="-pie -Wl,-z,relro,-z,now" %{__make} %{?jobs:-j%jobs} cc -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 %preun %stop_on_removal rpcbind %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 %postun %restart_on_update rpcbind %insserv_cleanup %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 %changelog