I get multiple problems with aliBuild build O2 --defaults o2 on Ubuntu 18.04 after the recent changes in alidist (dependence on ofi and python3)
The aliDoctor O2 --defaults o2 was showing:
...
ERROR: brew() { true; }; pkg-config --atleast-version=1.6.0 libfabric 2>&1 && printf "#include \"rdma/fabric.h\"\nint main(){}" | gcc -xc - -o /dev/null
ERROR: with the following output:
ERROR:
ERROR: ofi:
ERROR: libfabric and its development package are missing from your system.
ERROR: * RHEL-compatible systems: you will probably need "libfabric" and "libfabric-devel" packages.
ERROR: * Ubuntu-compatible systems: you will probably need "libfabric-bin" and "libfabric-dev".
ERROR:
I have the libfabric-dev instaled, but the highest version ubuntu 18.04 provides is 1.5.3-1 (the 1.6 comes with ubuntu 18.10).
I had to change the version from 1.6.0 to 1.5.0 in the ofi.sh to overcome this. Is it indeed critical to have the version of the libfabric >=1.6.0 ?
failing ==> Building Python-modules@1.0 due to the
Thanks, yes, I’ve already figured this out (why it is not set as a dependency?) and the python-modules stage is now passed. But now the asiofi building fails due to the wrong version of libfabric: it needs 1.6
shahoian@alicers02:~/alice/sw/SOURCES/asiofi/v0.3.1/v0.3.1$ git grep '1.6.0'
CMakeLists.txt: find_package2(PUBLIC OFI VERSION 1.6.0 REQUIRED
so my cheating of ofi.sh did not pass… Trying to compile libfabric 1.7 from source.
I would simply drop asiofi from fairmq. As far as I know we do not use it for anything but data distribution. We should probably ask WP5 and WP11 to split the dependency from ALFA and move it to datadistribution itself…
Ok, but on the fairmq.sh recipe level only this does not work:
CMake Error at cmake/FairMQLib.cmake:316 (find_package):
By not providing "Findasiofi.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "asiofi", but
CMake did not find one.
...
@shahoian Sry, I somehow missed the notification and didn’t see this ticket.
This is the intended behaviour (although the cmake error message is not the nicest indeed, but we rely on CMake standard facilities here). All build switches of FairMQ of type -DBUILD_<SOMETHING> are simple and will fail fast, if requirements are not met. The solution here is as @eulisse proposed, “do not set this flag, if you do not want this feature”.
@deklein
It seems the problem is solved by building latest ofi version by the alidist, you probably don’ t need to go back to ofi 1.5 . As for the decision to build ofi or not, I guess this should be handled on defaults level (I was using --defaults o2).