Build errors when compilng CTA 4.6.1-1

Hi,

I am trying to compile CTA 4.6.1-1 ( git checkout tags/v4.6.1-1) on an SL7 OpenStack VM using cmake3 and devtoolset-8. I get compilations errors that you can see here

http://www-public.gridpp.rl.ac.uk/antares/CTA461_build_errors

Do you know what should I do?

George

/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/cmdline/CtaAdminTextFormatter.cpp:1080:15: error: ‘const class cta::admin::DiskSystemLsItem’ has no member named ‘free_space_query_url’
/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/cmdline/CtaAdminTextFormatter.cpp:1081:15: error: ‘const class cta::admin::DiskSystemLsItem’ has no member named ‘refresh_interval’
make[6]: Target cmdline/CMakeFiles/cta-admin.dir/build' not remade because of errors. /root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/xroot_plugins/XrdCtaDiskSystemLs.hpp:89:14: error: 'class cta::admin::DiskSystemLsItem' has no member named 'set_free_space_query_url' /root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/xroot_plugins/XrdCtaDiskSystemLs.hpp:90:14: error: 'class cta::admin::DiskSystemLsItem' has no member named 'set_refresh_interval' make[6]: Target xroot_plugins/CMakeFiles/XrdSsiCta.dir/build’ not remade because of errors.
make[5]: Target all' not remade because of errors. make[4]: Target default_target’ not remade because of errors.
/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/cmdline/CtaAdminTextFormatter.cpp:1080:15: error: ‘const class cta::admin::DiskSystemLsItem’ has no member named ‘free_space_query_url’
/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/cmdline/CtaAdminTextFormatter.cpp:1081:15: error: ‘const class cta::admin::DiskSystemLsItem’ has no member named ‘refresh_interval’
/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/xroot_plugins/XrdCtaDiskSystemLs.hpp:89:14: error: ‘class cta::admin::DiskSystemLsItem’ has no member named ‘set_free_space_query_url’
/root/CTA/build_rpm/RPM/BUILD/cta-4.6.1-1/xroot_plugins/XrdCtaDiskSystemLs.hpp:90:14: error: ‘class cta::admin::DiskSystemLsItem’ has no member named ‘set_refresh_interval’

Hello George,
in the git checkout tags/v4.6.1-1 you can have a look at the .gitlab-ci.yml file that contains the code we use to automatically build CTA in the gitlab Continuous Integration.

Build is performed in 2 stages:

  • build:srpm
  • build:rpm

rpm build stage gets the build dependencies from cta srpms.

Reading this file will get you the needed steps to add devtoolset-8 additional step.

As you can see from this file too our default build environment is the standard cc7-base image from gitlab-registry.cern.ch/linuxsupport/cc7-base.

I hope it helps,
Cheers,
Julien

Hi Julien,

Thanks for this. I was following a procedure very similar (but not identical) to the one described in .gitlab-ci.yml. Following more closely .gitlab-ci.yml (I omitted steps I was sure I didn’t need like some yum installs and the copying of CERN repos which I cant access to /etc/yum.repos.d./), I managed now to compile CTA!

This what I did
http://www-public.gridpp.rl.ac.uk/antares/Build_CTA61_new.txt

Can you briefly sanity-check it?

The only differences compared to my procedure were the following

  • git submodule update --init --recursive (I ran this immediatelly after git clone)
  • cd xrootd-ssi-protobuf-interface && export XROOTD_SSI_PROTOBUF_INTERFACE_VERSION=$(git describe --tags --abbrev=0) && cd … (First time I see this; I was running it at all)
  • Updated rpm-build package (when I ran yum install -y devtoolset-8 cmake cmake3 make rpm-build

George

Hi George,
I had a quick look at your compile logs, they look good.
You can still double check with the complete logs of our build for 4.6.1-1:

Regarding the steps:

  1. recursively update the submodules of CTA repo to the specific commit if of their respective git stub
  2. this is to set correctly the version of the SSI protubuf version in the environmental variable: basically the latest tag after the submodule commit id from step 1. this is mainly so that cta-admin --json version reports the correct SSI version on CLI

On my Fedora laptop I try to do it like in CI: compile CTA in a fresh CC7 container instantiated via podman: I just wrote 2 small shell scripts to run the few lines from gitlab-ci.yml

Julien