Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > c91f0991796e9b0692397f569aba867f > files > 18

xrootd-3.0.3-2.fc13.src.rpm

%{!?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