#####################################################################
#
# Preamble 
#
# Macro definitions
%define ver    @version@
%define rel    @release@
%define _prefix        @prefix@
%define _sysconfdir    @etcdir@
%define _defaultdocdir %_prefix/share/doc
%define _rootdir       @rootdir@

######################################################################
#
# Header 
#
Name:         rootd@arcomp@
Version:      %{ver}
Release:      %{rel}
Copyright:    ROOT Software Terms and Conditions (see package)
Packager:     Gerri Ganis <Gerardo.Ganis@cern.ch>
Distribution: ROOT
Vendor:       ROOT Team
URL:          http://root.cern.ch
Source:       ftp://root.cern.ch/root/root_v%{ver}.source.tar.gz
Group:        ROOT
BuildRoot:    /tmp/rootdrpm
Prefix:       %{_prefix}
Summary:      @short@
Conflicts:    root-system-rootd 

#---------------------------------------------------------------------
# Less concise description
%description
@long@

#---------------------------------------------------------------------
# Install
%install
rm -rf $RPM_BUILD_ROOT%{_prefix}
mkdir -p $RPM_BUILD_ROOT%{_prefix}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/man/man1
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d

# The rootd executable
install -s -m 755 %{_rootdir}/bin/rootd $RPM_BUILD_ROOT%{_prefix}/bin/rootd
# Small application used internally for backward compatibility in SSH auth
install -s -m 755 %{_rootdir}/bin/ssh2rpd $RPM_BUILD_ROOT%{_prefix}/bin/ssh2rpd
# The rootd man page
install -m 644 %{_rootdir}/man/man1/rootd.1 $RPM_BUILD_ROOT%{_prefix}/share/man/man1/rootd.1
gzip $RPM_BUILD_ROOT%{_prefix}/share/man/man1/rootd.1
# The system.rootdaemonrc man page
install -m 644 %{_rootdir}/man/man1/system.rootdaemonrc.1 $RPM_BUILD_ROOT%{_prefix}/share/man/man1/system.rootdaemonrc.1
gzip $RPM_BUILD_ROOT%{_prefix}/share/man/man1/system.rootdaemonrc.1
# The access control configuration file with local CERN rules
install -m 644 %{_rootdir}/etc/system.rootdaemonrc $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc
# Add CERN local rules
echo "#"  >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc
echo "# CERN local rules for RFIO compatibility"  >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc
echo "*.cern.ch:rootd usrpwd ssh uidgid"  >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc
# The start script; will make it relocatable in the post-install
install -m 755 %{_rootdir}/etc/daemons/rootd.rc.d $RPM_BUILD_ROOT/etc/rc.d/init.d/rootd
#---------------------------------------------------------------------
# Files that go into this package 
%files
%attr(0755, root, root) %{_prefix}/bin/rootd 
%attr(0755, root, root) %{_prefix}/bin/ssh2rpd
%attr(0644, root, root) %{_prefix}/share/man/man1/rootd.1.gz 
%attr(0644, root, root) %{_prefix}/share/man/man1/system.rootdaemonrc.1.gz 
%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/system.rootdaemonrc
%attr(0755, root, root) /etc/rc.d/init.d/rootd

#---------------------------------------------------------------------
# Pre installation script - only body
#%pre

# end of script
#---------------------------------------------------------------------
# Post installation script - only body
%post
#
# If using inetd.conf, add relevant lines to the configuration file,
# if not already present 
if [ -f /etc/inetd.conf ] ; then 
   if ! grep -qs ^rootd /etc/inetd.conf ; then 
     echo 'rootd stream tcp nowait root %{_prefix}/bin/rootd rootd -i' \
       >> /etc/inetd.conf
   fi
fi
#
# If using xinetd, add a relevant entry in the config dir
if [ -d /etc/xinetd.d ] ; then 
   # remove existing rootd entry
   if [ -f /etc/xinetd.d/rootd ] ; then 
      rm -f /etc/xinetd.d/rootd
   fi
   # Create the file
   cat > /etc/xinetd.d/rootd << EOF
# default: on
# description: The rootd daemon (ROOT file server)
#
service rootd
{
        disable         = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = %{_prefix}/bin/rootd
        server_args     = -i
}
EOF
fi
#
# Make sure that port 1094 is assigned to rootd in /etc/services 
if ! grep -qs "^rootd" /etc/services ; then
    echo "rootd           1094/tcp # ROOT file access daemon"  >> /etc/services
fi
#
# Make sure that the rootd location is correct in /etc/rc.d/init.d/rootd
sed -e "s|/usr/local|$RPM_INSTALL_PREFIX|" < /etc/rc.d/init.d/rootd > /etc/rc.d/init.d/rootd.tmp
mv /etc/rc.d/init.d/rootd.tmp /etc/rc.d/init.d/rootd
chmod 0755 /etc/rc.d/init.d/rootd
#
# end of script
#---------------------------------------------------------------------
# Pre removal 
%preun
#
# Stop the service
#
/etc/rc.d/init.d/rootd stop
#
# Remove entries from /etc/inetd.conf
if [ -f /etc/inetd.conf ] ; then 
   if ! grep -qs ^rootd /etc/inetd.conf ; then 
      sed '/^rootd.*/d' < /etc/inetd.conf > /etc/inetd.conf.rpmnew
      mv /etc/inetd.conf.rpmnew /etc/inetd.conf
   fi
fi
#
# Remove entry from /etc/xinetd.d
if [ -d /etc/xinetd.d ] ; then 
   rm -f /etc/xinetd.d/rootd
fi
#
# Do not remove antries from /etc/services, since the numbers _are_ 
# assigned IANA, so there's no need 
#
# end of script
#---------------------------------------------------------------------
# Post removal - only body
# end of script