From 5e99a835055413882c8c2399a46a0276afb65c17 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Nov 28 2014 18:10:16 +0000 Subject: Update to version 4.1.0 - Install systemd unit files (F21+, EPEL7+) --- diff --git a/sources b/sources index 44a9d94..31f2457 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -da171c06e50673760fc1d648811253de xrootd-4.0.4.tar.gz +e6a674d664a3be411ac1ae46ca241e5b xrootd-4.1.0.tar.gz diff --git a/xrootd.spec b/xrootd.spec index a33e410..a2806e9 100644 --- a/xrootd.spec +++ b/xrootd.spec @@ -1,8 +1,14 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} +%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7 +%global use_systemd 1 +%else +%global use_systemd 0 +%endif + Name: xrootd Epoch: 1 -Version: 4.0.4 +Version: 4.1.0 Release: 1%{?dist} Summary: Extended ROOT file server @@ -27,10 +33,13 @@ BuildRequires: graphviz BuildRequires: graphviz-gd %endif BuildRequires: selinux-policy-devel +%if %{use_systemd} +BuildRequires: systemd +%endif Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-selinux = %{epoch}:%{version}-%{release} -Obsoletes: %{name}-server < 1:4.0.0 +Obsoletes: %{name} < 1:4.0.0 %description The Extended root file server consists of a file server called xrootd @@ -53,11 +62,18 @@ Requires: %{name}-client-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: expect Requires(pre): shadow-utils +%if %{use_systemd} +Requires(pre): systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else Requires(pre): chkconfig Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts +%endif %description server This package contains the xrootd servers without the SELinux support. @@ -217,35 +233,38 @@ pushd build make install DESTDIR=%{buildroot} popd -# Service start-up scripts et al. +# Service start-up scripts / unit files +%if %{use_systemd} +mkdir -p %{buildroot}%{_unitdir} +install -m 644 packaging/common/xrootd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/cmsd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/frm_xfrd@.service %{buildroot}%{_unitdir} +install -m 644 packaging/common/frm_purged@.service %{buildroot}%{_unitdir} +%else mkdir -p %{buildroot}%{_initrddir} mkdir -p %{buildroot}%{_sysconfdir}/sysconfig -mkdir -p %{buildroot}%{_sysconfdir}/%{name} - +install -p packaging/rhel/xrootd.init %{buildroot}%{_initrddir}/xrootd install -p packaging/rhel/cmsd.init %{buildroot}%{_initrddir}/cmsd install -p packaging/rhel/frm_purged.init %{buildroot}%{_initrddir}/frm_purged install -p packaging/rhel/frm_xfrd.init %{buildroot}%{_initrddir}/frm_xfrd -install -p packaging/rhel/%{name}.init %{buildroot}%{_initrddir}/%{name} - sed s/%{name}.functions/%{name}-functions/ -i %{buildroot}%{_initrddir}/* - install -m 644 -p packaging/rhel/%{name}.functions \ %{buildroot}%{_initrddir}/%{name}-functions - install -m 644 -p packaging/rhel/%{name}.sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/%{name} +%endif +# Server config +mkdir -p %{buildroot}%{_sysconfdir}/%{name} install -m 644 -p packaging/common/%{name}-clustered.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-clustered.cfg install -m 644 -p packaging/common/%{name}-standalone.cfg \ %{buildroot}%{_sysconfdir}/%{name}/%{name}-standalone.cfg # Client config +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d install -m 644 -p packaging/common/client.conf \ %{buildroot}%{_sysconfdir}/%{name}/client.conf - -# Client plug-in config -mkdir -p %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d install -m 644 -p packaging/common/client-plugin.conf.example \ %{buildroot}%{_sysconfdir}/%{name}/client.plugins.d @@ -295,9 +314,50 @@ getent passwd %{name} >/dev/null || useradd -r -g %{name} -s /sbin/nologin \ /sbin/service olbd stop >/dev/null 2>&1 || : /sbin/chkconfig --del olbd >/dev/null 2>&1 || : +%if %{use_systemd} +# Remove old init config when systemd is used +/sbin/service xrootd stop >/dev/null 2>&1 || : +/sbin/service cmsd stop >/dev/null 2>&1 || : +/sbin/service frm_purged stop >/dev/null 2>&1 || : +/sbin/service frm_xfrd stop >/dev/null 2>&1 || : +/sbin/chkconfig --del xrootd 2>&1 || : +/sbin/chkconfig --del cmsd 2>&1 || : +/sbin/chkconfig --del frm_purged 2>&1 || : +/sbin/chkconfig --del frm_xfrd 2>&1 || : +%endif + +%if %{use_systemd} + +%post server +if [ $1 -eq 1 ] ; then + systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%preun server +if [ $1 -eq 0 ] ; then + for DAEMON in xrootd cmsd frm_purged frm xfrd; do + for INSTANCE in `systemctl | grep $DAEMON@ | awk '{print $1;}'`; do + systemctl --no-reload disable $INSTANCE > /dev/null 2>&1 || : + systemctl stop $INSTANCE > /dev/null 2>&1 || : + done + done +fi + +%postun server +if [ $1 -ge 1 ] ; then + systemctl daemon-reload >/dev/null 2>&1 || : + for DAEMON in xrootd cmsd frm_purged frm xfrd; do + for INSTANCE in `systemctl | grep $DAEMON@ | awk '{print $1;}'`; do + systemctl try-restart $INSTANCE >/dev/null 2>&1 || : + done + done +fi + +%else + %post server if [ $1 -eq 1 ]; then - /sbin/chkconfig --add %{name} + /sbin/chkconfig --add xrootd /sbin/chkconfig --add cmsd /sbin/chkconfig --add frm_purged /sbin/chkconfig --add frm_xfrd @@ -305,11 +365,11 @@ fi %preun server if [ $1 -eq 0 ]; then - /sbin/service %{name} stop >/dev/null 2>&1 || : + /sbin/service xrootd stop >/dev/null 2>&1 || : /sbin/service cmsd stop >/dev/null 2>&1 || : /sbin/service frm_purged stop >/dev/null 2>&1 || : /sbin/service frm_xfrd stop >/dev/null 2>&1 || : - /sbin/chkconfig --del %{name} + /sbin/chkconfig --del xrootd /sbin/chkconfig --del cmsd /sbin/chkconfig --del frm_purged /sbin/chkconfig --del frm_xfrd @@ -317,12 +377,14 @@ fi %postun server if [ $1 -ge 1 ]; then - /sbin/service %{name} condrestart >/dev/null 2>&1 || : + /sbin/service xrootd condrestart >/dev/null 2>&1 || : /sbin/service cmsd condrestart >/dev/null 2>&1 || : /sbin/service frm_purged condrestart >/dev/null 2>&1 || : /sbin/service frm_xfrd condrestart >/dev/null 2>&1 || : fi +%endif + %post selinux /usr/sbin/semodule -i %{_datadir}/selinux/packages/%{name}/%{name}.pp >/dev/null 2>&1 || : @@ -345,9 +407,10 @@ fi %{_bindir}/mpxstats %{_bindir}/wait41 %{_bindir}/XrdCnsd +%{_bindir}/xrdmapc %{_bindir}/xrdpwdadmin %{_bindir}/xrdsssadmin -%{_bindir}/%{name} +%{_bindir}/xrootd %{_mandir}/man8/cmsd.8* %{_mandir}/man8/cns_ssi.8* %{_mandir}/man8/frm_admin.8* @@ -358,10 +421,14 @@ fi %{_mandir}/man8/XrdCnsd.8* %{_mandir}/man8/xrdpwdadmin.8* %{_mandir}/man8/xrdsssadmin.8* -%{_mandir}/man8/%{name}.8* +%{_mandir}/man8/xrootd.8* %{_datadir}/%{name} +%if %{use_systemd} +%{_unitdir}/* +%else %{_initrddir}/* %config(noreplace) %{_sysconfdir}/sysconfig/%{name} +%endif %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %attr(-,xrootd,xrootd) %config(noreplace) %{_sysconfdir}/%{name}/*.cfg %attr(-,xrootd,xrootd) %{_localstatedir}/log/%{name} @@ -372,19 +439,17 @@ fi %files libs %{_libdir}/libXrdAppUtils.so.* -%{_libdir}/libXrdCksCalczcrc32.so.* %{_libdir}/libXrdCrypto.so.* %{_libdir}/libXrdCryptoLite.so.* -%{_libdir}/libXrdCryptossl.so.* -%{_libdir}/libXrdSec*.so.* %{_libdir}/libXrdUtils.so.* -# Some of the libraries are used as plugins - need the .so symlink at runtime -%{_libdir}/libXrdCksCalczcrc32.so -%{_libdir}/libXrdCryptossl.so -%{_libdir}/libXrdSec*.so +# Plugins +%{_libdir}/libXrdCksCalczcrc32-4.so +%{_libdir}/libXrdCryptossl-4.so +%{_libdir}/libXrdSec*-4.so %doc COPYING* LICENSE %files devel +%{_bindir}/xrootd-config %dir %{_includedir}/%{name} %{_includedir}/%{name}/XProtocol %{_includedir}/%{name}/Xrd @@ -394,8 +459,6 @@ fi %{_includedir}/%{name}/XrdSec %{_includedir}/%{name}/XrdSys %{_includedir}/%{name}/XrdVersion.hh -%{_includedir}/%{name}/XrdVersionPlugin.hh -# These libraries are not used as plugins %{_libdir}/libXrdAppUtils.so %{_libdir}/libXrdCrypto.so %{_libdir}/libXrdCryptoLite.so @@ -407,7 +470,7 @@ fi %{_libdir}/libXrdFfs.so.* %{_libdir}/libXrdPosix.so.* %{_libdir}/libXrdPosixPreload.so.* -# Some of the libraries are used as plugins - need the .so symlink at runtime +# This lib may be used for LD_PRELOAD so the .so link needs to be included %{_libdir}/libXrdPosixPreload.so %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/client.conf @@ -418,26 +481,20 @@ fi %{_includedir}/%{name}/XrdCl %{_includedir}/%{name}/XrdClient %{_includedir}/%{name}/XrdPosix -# These libraries are not used as plugins %{_libdir}/libXrdCl.so %{_libdir}/libXrdClient.so %{_libdir}/libXrdFfs.so %{_libdir}/libXrdPosix.so %files server-libs -%{_libdir}/libXrdBwm.so.* -%{_libdir}/libXrdFileCache.so.* -%{_libdir}/libXrdHttp.so.* -%{_libdir}/libXrdOfs.so.* -%{_libdir}/libXrdPss.so.* %{_libdir}/libXrdServer.so.* -%{_libdir}/libXrdXrootd.so.* -# Some of the libraries are used as plugins - need the .so symlink at runtime -%{_libdir}/libXrdBwm.so -%{_libdir}/libXrdFileCache.so -%{_libdir}/libXrdHttp.so -%{_libdir}/libXrdPss.so -%{_libdir}/libXrdXrootd.so +# Plugins +%{_libdir}/libXrdBwm-4.so +%{_libdir}/libXrdFileCache-4.so +%{_libdir}/libXrdHttp-4.so +%{_libdir}/libXrdOssSIgpfsT-4.so +%{_libdir}/libXrdPss-4.so +%{_libdir}/libXrdXrootd-4.so %files server-devel %{_includedir}/%{name}/XrdAcc @@ -446,8 +503,6 @@ fi %{_includedir}/%{name}/XrdSfs %{_includedir}/%{name}/XrdXrootd %{_includedir}/%{name}/XrdHttp -# These libraries are not used as plugins -%{_libdir}/libXrdOfs.so %{_libdir}/libXrdServer.so %files private-devel @@ -481,6 +536,10 @@ fi %doc %{_pkgdocdir} %changelog +* Fri Nov 28 2014 Mattias Ellert - 1:4.1.0-1 +- Update to version 4.1.0 +- Install systemd unit files (F21+, EPEL7+) + * Sat Nov 01 2014 Mattias Ellert - 1:4.0.4-1 - Update to version 4.0.4