%{!?perl_vendorarch: %global perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)} %{?perl_default_filter} Name: xrootd Epoch: 1 Version: 3.0.3 Release: 2%{?dist} Summary: Extended ROOT file server Group: System Environment/Daemons # Sources are BSD, man pages are LGPLv2+ License: BSD and LGPLv2+ URL: http://xrootd.org/ Source0: http://xrootd.org/download/v%{version}/%{name}-%{version}.tar.gz # These man pages are extracted from the man/man1 directory in # the root source archive: # ftp://root.cern.ch/root/root_v5.28.00.source.tar.gz Source1: xrootd-manpages.tar.gz Source2: %{name}.logrotate Patch0: %{name}-jni.patch Patch1: %{name}-perl-java.patch Patch2: %{name}-circular-deps.patch Patch3: %{name}-dso.patch Patch4: %{name}-undef.patch Patch5: %{name}-nsl-link.patch Patch6: %{name}-bonjour.patch Patch7: %{name}-headers.patch Patch8: %{name}-gridsite.patch Patch9: %{name}-cryptoload.patch Patch10: %{name}-xmi.patch Patch11: %{name}-man.patch Patch12: %{name}-init.patch Patch13: %{name}-rhel5-no-atomic.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: krb5-devel BuildRequires: openssl-devel BuildRequires: gridsite-devel BuildRequires: readline-devel %if %{?fedora}%{!?fedora:0} >= 7 || %{?rhel}%{!?rhel:0} >= 5 BuildRequires: fuse-devel %endif %if %{?fedora}%{!?fedora:0} >= 6 || %{?rhel}%{!?rhel:0} >= 5 BuildRequires: avahi-compat-libdns_sd-devel BuildRequires: avahi-devel %endif BuildRequires: libxml2-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: swig BuildRequires: doxygen BuildRequires: graphviz %if "%{?rhel}" == "5" BuildRequires: graphviz-gd %endif Provides: %{name}-server = %{epoch}:%{version}-%{release} Obsoletes: %{name}-server < %{epoch}:%{version}-%{release} Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires(pre): shadow-utils Requires(pre): chkconfig Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts Requires(postun): initscripts %description The Extended root file server consists of a file server called xrootd and a cluster management server called cmsd. The xrootd server was developed for the root analysis framework to serve root files. However, the server is agnostic to file types and provides POSIX-like access to any type of file. The cmsd server is the next generation version of the olbd server, originally developed to cluster and load balance Objectivity/DB AMS database servers. It provides enhanced capability along with lower latency and increased throughput. %package libs Summary: Libraries used by xrootd servers and clients Group: System Environment/Libraries %description libs This package contains the libraries used by the xrootd servers and clients. %package devel Summary: Development files for xrootd Group: Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description devel This package contains header files and development libraries for xrootd. %package client Summary: Xrootd command line client tools Group: Applications/Internet Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description client This package contains the command line tools used to communicate with xrootd servers. %if %{?fedora}%{!?fedora:0} >= 7 || %{?rhel}%{!?rhel:0} >= 5 %package fuse Summary: Xrootd FUSE tool Group: Applications/Internet Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description fuse This package contains the FUSE (file system in user space) xrootd mount tool. %endif %package client-admin-perl Summary: Xrootd client administration Perl module Group: Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description client-admin-perl This package contains a swig generated xrootd client administration Perl module. %package client-admin-java Summary: Xrootd client administration Java library Group: Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} %if %{?fedora}%{!?fedora:0} >= 7 || %{?rhel}%{!?rhel:0} >= 5 Requires: java %else Requires: java-1.4.2-gcj-compat %endif %description client-admin-java This package contains JNI bindings for doing xrootd client administration in Java. %package doc Summary: Developer documentation for the xrootd libraries Group: Documentation %if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch %endif %description doc This package contains the API documentation of the xrootd libraries. %prep %setup -q %setup -D -T -q -a 1 # Resolve libXrdNetUtil â libXrdOuc â libXrdNet circular dependencies mkdir src/XrdNetUtil mv src/XrdNet/XrdNetDNS.cc src/XrdNetUtil cp -p src/XrdNet/Makefile.am src/XrdNetUtil # Resolve libXrdFrm â libXrdOss â XrdFrm utilities circular dependencies mv src/XrdFrm src/XrdFrmUtil mkdir src/XrdFrm for f in XrdFrmCID XrdFrmProxy XrdFrmReqAgent XrdFrmReqFile XrdFrmRequest \ XrdFrmTrace XrdFrmUtils XrdFrmXAttr XrdFrmXLock ; do mv src/XrdFrmUtil/$f.* src/XrdFrm done cp -p src/XrdFrmUtil/Makefile.am src/XrdFrm %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 # Turn off static linking find . -name Makefile.am -exec sed -e 's/ -static//g' -i {} ';' # Remove windows pthreads (not used, and has different license - GPL) rm -rf pthreads-win32 # Remove bundled gridsite library for f in grst_asn1.c grst_err.c grst_gacl.c grst_http.c grst_x509.c \ grst_xacml.c gridsite.h ; do rm -rf src/XrdSecssl/libsslGridSite/$f done # Use absolute path to load JNI library sed 's!loadLibrary("\(.*\)")!load("%{_libdir}/%{name}/lib\1.so")!' \ -i src/XrdClient/XrdClientAdminJNI.java # Fix JNI interface namespace sed 's!Java_XrdClientAdminJNI!Java_xrootdadmin_XrdClientAdminJNI!' \ -i src/XrdClient/XrdClientAdminJNI.cc ./bootstrap.sh %build %configure --enable-gsi --enable-mon --enable-doc \ %if %{?fedora}%{!?fedora:0} <= 11 && %{?rhel}%{!?rhel:0} <= 5 --enable-krb4 \ %else --disable-krb4 \ %endif --enable-krb5 --with-krb5-incdir=/usr/include \ --enable-javaint --with-java-home=/usr/lib/jvm/java --disable-static make %{?_smp_mflags} pushd src/XrdClient jar cvf XrdClientAdminJNI.jar xrootdadmin/XrdClientAdminJNI.class popd %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT # Remove libtool archives rm $RPM_BUILD_ROOT%{_libdir}/*.la # Remove some junk rm -rf $RPM_BUILD_ROOT%{_sysconfdir} rm -rf $RPM_BUILD_ROOT%{_bindir}/xrootdutils %if %{?fedora}%{!?fedora:0} < 7 && %{?rhel}%{!?rhel:0} < 5 rm $RPM_BUILD_ROOT%{_bindir}/xrootdfs %endif # Perl module mkdir -p $RPM_BUILD_ROOT%{perl_vendorarch}/auto/XrdClientAdmin mv $RPM_BUILD_ROOT/%{_libdir}/XrdClientAdmin.pm \ $RPM_BUILD_ROOT%{perl_vendorarch} mv $RPM_BUILD_ROOT/%{_libdir}/XrdClientAdmin.so \ $RPM_BUILD_ROOT%{perl_vendorarch}/auto/XrdClientAdmin # Java JNI mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name} mv $RPM_BUILD_ROOT/%{_libdir}/libXrdClientAdminJNI.so \ $RPM_BUILD_ROOT%{_libdir}/%{name} install -m 644 src/XrdClient/XrdClientAdminJNI.jar \ $RPM_BUILD_ROOT%{_libdir}/%{name} # Service start-up scripts et al. mkdir -p $RPM_BUILD_ROOT%{_initrddir} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} install -p packaging/rhel/cmsd.init \ $RPM_BUILD_ROOT%{_initrddir}/cmsd install -p packaging/rhel/frm_purged.init \ $RPM_BUILD_ROOT%{_initrddir}/frm_purged install -p packaging/rhel/frm_xfrd.init \ $RPM_BUILD_ROOT%{_initrddir}/frm_xfrd install -p packaging/rhel/%{name}.init \ $RPM_BUILD_ROOT%{_initrddir}/%{name} sed s/%{name}.functions/%{name}-functions/ -i $RPM_BUILD_ROOT%{_initrddir}/* %if "%{?rhel}" == "4" install -m 644 -p packaging/rhel/%{name}.functions-slc4 \ $RPM_BUILD_ROOT%{_initrddir}/%{name}-functions %else install -m 644 -p packaging/rhel/%{name}.functions \ $RPM_BUILD_ROOT%{_initrddir}/%{name}-functions %endif sed -e 's/XROOTD_USER=daemon/XROOTD_USER=%{name}/g' \ -e 's/XROOTD_GROUP=daemon/XROOTD_GROUP=%{name}/g' \ packaging/rhel/%{name}.sysconfig > \ $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} install -m 644 packaging/common/%{name}-clustered.cfg \ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}-clustered.cfg install -m 644 packaging/common/%{name}-standalone.cfg \ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}-standalone.cfg mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{name} mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/spool/%{name} mkdir $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} # Man pages mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 sed -e '/^\.UR/d' -e '/^\.UE/d' -i xrootd-manpages/* install -p -m 644 xrootd-manpages/* $RPM_BUILD_ROOT%{_mandir}/man1 # Documentation mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} cp -pr doxydoc/html $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} %clean rm -rf $RPM_BUILD_ROOT %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %pre getent group %{name} >/dev/null || groupadd -r %{name} getent passwd %{name} >/dev/null || useradd -r -g %{name} -s /sbin/nologin \ -d %{_localstatedir}/spool/%{name} -c "XRootD runtime user" %{name} # Remove obsolete service /sbin/service olbd stop >/dev/null 2>&1 || : /sbin/chkconfig --del olbd >/dev/null 2>&1 || : %post if [ $1 = 1 ]; then /sbin/chkconfig --add %{name} /sbin/chkconfig --add cmsd /sbin/chkconfig --add frm_purged /sbin/chkconfig --add frm_xfrd fi %preun if [ $1 = 0 ]; then /sbin/service %{name} 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 cmsd /sbin/chkconfig --del frm_purged /sbin/chkconfig --del frm_xfrd fi %postun if [ $1 -ge 1 ]; then /sbin/service %{name} 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 %files %defattr(-,root,root,-) %{_bindir}/cconfig %{_bindir}/cmsd %{_bindir}/cns_ssi %{_bindir}/frm_* %{_bindir}/mpxstats %{_bindir}/wait41 %{_bindir}/xrdadler32 %{_bindir}/XrdCnsd %{_bindir}/xrdmonAdmin %{_bindir}/xrdmonCollector %{_bindir}/xrdpwdadmin %{_bindir}/xrdsssadmin %{_bindir}/%{name} %{_mandir}/man1/cmsd.1* %{_mandir}/man1/xrdpwdadmin.1* %{_mandir}/man1/%{name}.1* %{_initrddir}/* %config(noreplace) %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %attr(-,xrootd,xrootd) %{_localstatedir}/log/%{name} %attr(-,xrootd,xrootd) %{_localstatedir}/spool/%{name} %files libs %defattr(-,root,root,-) %{_libdir}/libXrd*.so.* # Some of the libraries are used as plugins - need the .so symlink at runtime %{_libdir}/libXrdBwm.so %{_libdir}/libXrdCryptossl.so %{_libdir}/libXrdPss.so %{_libdir}/libXrdRootd.so %{_libdir}/libXrdSec.so %{_libdir}/libXrdSecgsi.so %{_libdir}/libXrdSecgsiGMAPLADP.so %if %{?fedora}%{!?fedora:0} <= 11 && %{?rhel}%{!?rhel:0} <= 5 %{_libdir}/libXrdSeckrb4.so %endif %{_libdir}/libXrdSeckrb5.so %{_libdir}/libXrdSecpwd.so %{_libdir}/libXrdSecssl.so %{_libdir}/libXrdSecsss.so %{_libdir}/libXrdSecunix.so %files devel %defattr(-,root,root,-) %{_includedir}/%{name} # These libraries are not used as plugins %{_libdir}/libXrd.so %{_libdir}/libXrdAcc.so %{_libdir}/libXrdClient.so %{_libdir}/libXrdCms.so %{_libdir}/libXrdCrypto.so %{_libdir}/libXrdCryptoLite.so %{_libdir}/libXrdFfs.so %{_libdir}/libXrdFrm.so %{_libdir}/libXrdNet.so %{_libdir}/libXrdNetUtil.so %{_libdir}/libXrdOfs.so %{_libdir}/libXrdOss.so %{_libdir}/libXrdOuc.so %{_libdir}/libXrdPosix.so %{_libdir}/libXrdSut.so %{_libdir}/libXrdSys.so %files client %defattr(-,root,root,-) %{_bindir}/xprep %{_bindir}/xrd %{_bindir}/xrdcp %{_bindir}/xrdgsiproxy %{_bindir}/xrdstagetool %{_mandir}/man1/xprep.1* %{_mandir}/man1/xrd.1* %{_mandir}/man1/xrdcp.1* %{_mandir}/man1/xrdgsiproxy.1* %{_mandir}/man1/xrdstagetool.1* %if %{?fedora}%{!?fedora:0} >= 7 || %{?rhel}%{!?rhel:0} >= 5 %files fuse %defattr(-,root,root,-) %{_bindir}/xrootdfs %endif %files client-admin-perl %defattr(-,root,root,-) %{perl_vendorarch}/XrdClientAdmin.pm %{perl_vendorarch}/auto/XrdClientAdmin %files client-admin-java %defattr(-,root,root,-) %{_libdir}/%{name} %files doc %defattr(-,root,root,-) %doc %{_docdir}/%{name}-%{version} %changelog * Mon May 02 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.3-2 - Proper fix for the atomic detection om ppc - no bug in gcc after all * Sun Apr 24 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.3-1.1 - Workaround for broken gcc on RHEL5 ppc (rhbz #699149) * Fri Apr 22 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.3-1 - Update to version 3.0.3 - Use upstream's manpages where available (new in this release) - Use upstream's start-up scripts (new in this release) * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.0.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sun Jan 30 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.2-1 - Update to version 3.0.2 - Patch XrdCms makefile to make the Xmi interface public * Fri Dec 17 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.0-2 - Rebuilt for updated gridsite package * Mon Dec 13 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 1:3.0.0-1 - Update to version 3.0.0 - New subpackage - xrootd-fuse - New version scheme inroduced by upstream - add epoch * Wed Sep 01 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 20100315-5 - Disable threads in doxygen - causes memory corruption on ppc * Wed Sep 01 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 20100315-4 - Add startup scripts for cmsd service that replaces the deprecated olbd service * Fri Jul 09 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 20100315-3 - Fix broken jar * Mon Jun 14 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 20100315-2 - Add LGPLv2+ to License tag due to man pages - Better package description * Wed Jun 09 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 20100315-1 - Initial packaging