TWiki Legacy - CompilingXRootD (2020-12-07, GeorgePatargias)

Title

Minimum/easiest set of packages to compile XRootD with Ceph support:

  1. Provide repository information for Ceph libraries (might not be configured by default):

cat /etc/yum.repos.d/ceph-el7-x86_64.repo

# File generated by NCM::Component::spma::yum. Do not edit
# Basic Yum repository file. See the man pages for
# NCM::Component::spma and yum.conf
# for more details.

[ceph-el7-x86_64]
name=ceph-el7-x86_64
baseurl= http://mirrors.gridpp.rl.ac.uk/current/ceph-el7-x86_64/RPMS.nautilus/

metadata_expire=7d
include=/etc/yum.repos.d/ceph-el7-x86_64.pkgs
enabled=1
gpgcheck=0
priority=40
skip_if_unavailable=0

cat /etc/yum.repos.d/ceph-el7-x86_64.pkgs
# Additional configuration for ceph-el7-x86_64 # Could create this as an empty file with 'touch'

cat /etc/yum.repos.d/ceph-el7-noarch.repo
# File generated by NCM::Component::spma::yum. Do not edit
# Basic Yum repository file. See the man pages for
# NCM::Component::spma and yum.conf
# for more details.

[ceph-el7-noarch]
name=ceph-el7-noarch
baseurl= http://mirrors.gridpp.rl.ac.uk/current/ceph-el7-noarch/RPMS.luminous/

metadata_expire=7d
include=/etc/yum.repos.d/ceph-el7-noarch.pkgs
enabled=1
gpgcheck=0
priority=40
skip_if_unavailable=0

 

cat /etc/yum.repos.d/ceph-el7-noarch.pkgs
# Additional configuration for ceph-el7-noarch # Could create this as an empty file with 'touch'

  1. Install required packages

 

yum group install "Development Tools"
yum install git cmake
yum install zlib-devel openssl-devel librados2-devel libradosstriper-1devel    

  1. Obtain the source

We will clone from the Master branch in the XRootD Git Hub repo:

 

git clone GitHub - xrootd/xrootd: The XRootD central repository https://my.cdash.org/index.php?project=XRootD
cd xrootd; mkdir buildtop.d; cd buildtop.d     
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/xrootd -DENABLE_CEPH=TRUE -DBUILD_TESTS=TRUE
make  
sudo -c make install        

If compiling an older version (at least before 4.9, need to add the definition -DHAVE_DH_PADDED_FUNC=TRUE, otherwise you may see this error XRootDCompilationErrorDH _PADDED_FUNC.

Test it.