aliBuild fails while building ROOT

Hello,

I have a trouble with doing

aliBuild build O2 --defaults o2 --debug

It fails at the building of ROOT with error message:

ERROR:O2:ROOT:0: Error while executing /home/oyama/alice/sw/SPECS/slc7_x86-64/ROOT/v6-12-06-1/build.sh on `epn1.intra.elc.nias.ac.jp’.
ERROR:O2:ROOT:0: Log can be found in /home/oyama/alice/sw/BUILD/ROOT-latest/log.
ERROR:O2:ROOT:0: Please upload it to CERNBox/Dropbox if you intend to request support.
ERROR:O2:ROOT:0: Build directory is /home/oyama/alice/sw/BUILD/ROOT-latest/ROOT.

I put the log output on CERNBox.
https://cernbox.cern.ch/index.php/s/vJR53DvbB6tED0P

It is bit strange for me because there seems no critical reason of error on
the log.

Could anyone give me suggestion?

Hi,

If I interpret the log correctly, cmake fails when checking for requirements in the configure stage:

FEATURES='builtin_pcre mathmore xml ssl opengl minuit2 http
            pythia6 roofit soversion vdt  cxx14 
            '
+ for FEATURE in '$FEATURES'
+ bin/root-config --has-xml
+ grep -q yes

and it seems to fail when checking for xml support. Could it be that there is a missing system library dependency not expressed/checked by the build recipe?

Sandro is right. Can you give us the full output of:

aliDoctor --defaults o2 --debug O2

In principle we automatically detect the presence of libxml.

Hi Sandro, Dario,

Thanks for your quick help!

Yes, you were correct. xml is there but libxml was not there in the system.
Problem was solved.
It would be nicer if the error message is more explicit and tell what was problem instead of silently
stopping.

Dario, sorry, I installed libxml before seeing your comment. But I’m sure that
aliDoctor --defaults o2
didn’t tell about missing libxml. If it was there, for sure I installed at that moment.
But I was not using --debug O2 option.

OK, glad it worked!

The point is that you should never get to that point. The line preventing you from proceeding is in the ROOT recipe, and it’s a “safety barrier” (that worked well this time) that catches errors that should have been caught earlier.

More specifically, they should have been caught by aliDoctor, which should have told you to install libxml2, this time with a clear error message.

Please note that libxml2 and libxml2-devel on CC7 are mentioned in our official installation guide (given that the error should have been caught by aliDoctor. In case the problem occurs again, can you please report it to us?

Thanks! :slight_smile:

As of today, with latest alidist and alibuild, this error is still present. Can it please be fixed?

For the record, the same problem happens with the --has-ssl check in ROOT. Also here aliDoctor did not previously complain.

Strangely, aliDoctor diagnostics message for missing libxml2 is showed if and only if --defaults o2 is missing.

$ sudo yum remove libxml2-devel
(...)
$ aliDoctor O2 2>&1 | grep libxml2
WARNING: Package libxml2 cannot be picked up from the system and will be built by aliBuild.
WARNING: if [ $? -ne 0 ]; then printf "libxml2 not found.\n * On RHEL-compatible systems you probably need: libxml2 libxml2-devel\n * On Ubuntu-compatible systems you probably need: libxml2 libxml2-dev"; exit 1; fi
WARNING: libxml2: /bin/bash: xml2-config: command not found
WARNING: libxml2: libxml2 not found.
WARNING: libxml2:  * On RHEL-compatible systems you probably need: libxml2 libxml2-devel
WARNING: libxml2:  * On Ubuntu-compatible systems you probably need: libxml2 libxml2-dev
- libxml2
$ aliDoctor O2 --defaults o2 2>&1 | grep libxml2
$

Moreover, without --defaults o2, aliDoctor tells us libxml2 will be built by aliBuild.

$ aliDoctor O2
(...)
==> The following packages will be built by aliBuild because they couldn't be picked up from the system:

    - Python-modules
    - Vc
    - CMake
    - protobuf
    - libxml2
    - SWIG
    - flatbuffers
    - GCC-Toolchain
    - msgpack
    - yaml-cpp
    - nanomsg
    - ZeroMQ
    - boost
    - GSL

    This is not a real issue, but it might take longer the first time you invoke aliBuild.
    Look at the error messages above to get hints on what packages you need to install separately.
(...)

I had reported an issue about missing libxml2 before the guide was published (Building ROOT with O2 (defaults-o2) fails on CC7 when libxml2-devel is not installed) and I think it is acceptable to build our own libxml2 if missing.

Anyway, at least, I think the diagnostics message should be showed with --defaults o2. Do you have any thoughts about this?

There’s a PR from @swenzel that addresses the aliDoctor issue here, thanks for that! Now aliDoctor’s output is finally consistent. The PR will be merged as soon as it passes the required tests.

While we are at it, let me kindly remind everyone what I said earlier:

so please always follow the golden path provided by the instructions in order to avoid incurring into blocking problems and wasting time :slight_smile:

1 Like