easybuild icon indicating copy to clipboard operation
easybuild copied to clipboard

Testing recipes in a fully loaded OS

Open mboisson opened this issue 6 years ago • 1 comments

Extract from the discussion on Slack regarding this :

Probably not something that is easily addressable, but I have seen quite a few programs that just pickup OS versions (Nix, in our case) of libraries even though other modules are loaded. I know you guys have been working on testing existing recipes in a bare environment, through containers… have you thought of testing the same recipes in a fully-loaded OS as well ? i.e. a Ubuntu with the whole world installed through apt-get (modifié)

Namely, on multiple occasions, I have had to edit recipes in order to explicitly specify either QT_QMAKE_EXECUTABLE=$EBROOTQT/bin/qmake or PYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python (modifié)

Bart Oldeman [15 h 25] BOOST has been a common issue in the past for me, mostly in combination with cmake picking up the system boost instead of the boost module.

Maxime Boissonneault [15 h 25] I’m wondering if this has to do with Nix’s cmake in particular (i.e. would a cmake installed outside of nix work better)

Bart Oldeman [15 h 26] no, this was before we used nix

on Guillimin with older EB generated modules, plain CentOS6:

[boldeman@lg-1r17-n03 ~]$ module load iomkl/2015b Boost/1.59.0-Python-2.7.10
[boldeman@lg-1r17-n03 ~]$ rpm -ql boost-devel | grep cmake
/usr/lib64/boost/Boost-relwithdebinfo.cmake
/usr/lib64/boost/Boost.cmake
/usr/lib64/boost/BoostConfig.cmake
/usr/lib64/boost/BoostConfigVersion.cmake
[boldeman@lg-1r17-n03 ~]$ find $EBROOTBOOST | grep cmake
[boldeman@lg-1r17-n03 ~]$

the fact that boost-devel includes .cmake files but the EB module does not causes funny things

boegel [15 h 33] @Maxime Boissonneault We could test in a fully populated OS too, that's a good suggestion, but how would we recognise that's it's picking up stuff from the OS? When things fail?

Maxime Boissonneault [15 h 34] That’s one way for sure. Usually it causes failure in the cases I’ve seen

Bart Oldeman [15 h 34] (that is boost-devel-1.41.0, I guess redhat built it with cmake but standard is bjam)

ldd on binaries in sanity check?

but that's not sufficient to check if correct headers were used

Maxime Boissonneault [15 h 36] Wouldn’t ldd only be instructive when rpath is used ? otherwise it would either not find libraires (if the modules aren’t loaded), or find the module ones if the modules are loaded and define LD_LIBRARY_PATH

mboisson avatar Sep 25 '18 19:09 mboisson

@boegel @bartoldeman

mboisson avatar Sep 25 '18 19:09 mboisson