On 8 Mar 2017, at 15:12, Kenneth Hoste <[email protected]<mailto:[email protected]>> wrote:
Hi Joachim, On 08/03/2017 14:24, Joachim Hein wrote: On 7 Mar 2017, at 17:41, Kenneth Hoste <[email protected]<mailto:[email protected]>> wrote: Dear EasyBuilders, I'm happy to announce the release of EasyBuild version 3.1.1 [1]. This is, you've guessed it, the best EasyBuild release so far... This is a minor bugfix/update release. Highlights include: * bug fix in module generator for hierarchical module naming schemes and the GCC toolchain bundle (GCCcore + binutils) * if you are using GCC(core) in a hierarchical module naming scheme you should check the module files in the Compiler/GCC/<version> module subtree, and regenerate module files that include a "load GCCcore” statement Hi Kenneth, Thanks for raising this so prominently. If I understand this correct, I need to eb -f --module-only config_name.eb For all the relevant modules. Correct? It is a long list here. I would be more careful, and check with 'grep' which module files in Compiler/GCC have a load for 'GCCcore’. Hi Kenneth, This is a list of the grep procedure on our system -bash-4.2$ more gcc_modules_for_rebuild.out 4.9.3-2.25/Autoconf/2.69:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/Autoconf/2.69: module load GCCcore/4.9.3 4.9.3-2.25/Automake/1.15:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/Automake/1.15: module load GCCcore/4.9.3 4.9.3-2.25/Autotools/20150215:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/Autotools/20150215: module load GCCcore/4.9.3 4.9.3-2.25/Emacs/24.5:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/Emacs/24.5: module load GCCcore/4.9.3 4.9.3-2.25/hwloc/1.11.2:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/hwloc/1.11.2: module load GCCcore/4.9.3 4.9.3-2.25/libtool/2.4.6:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/libtool/2.4.6: module load GCCcore/4.9.3 4.9.3-2.25/M4/1.4.17:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/M4/1.4.17: module load GCCcore/4.9.3 4.9.3-2.25/ncurses/6.0:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/ncurses/6.0: module load GCCcore/4.9.3 4.9.3-2.25/numactl/2.0.11:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/numactl/2.0.11: module load GCCcore/4.9.3 4.9.3-2.25/OpenBLAS/0.2.15-LAPACK-3.6.0:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/OpenBLAS/0.2.15-LAPACK-3.6.0: module load GCCcore/4.9.3 4.9.3-2.25/OpenMPI/1.10.2:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/OpenMPI/1.10.2: module load GCCcore/4.9.3 4.9.3-2.25/OpenMPI/1.10.2~:if { ![ is-loaded GCCcore/4.9.3 ] } { 4.9.3-2.25/OpenMPI/1.10.2~: module load GCCcore/4.9.3 4.9.3-2.25/Singularity/2.2.1.lua:if not isloaded("GCCcore/4.9.3") then 4.9.3-2.25/Singularity/2.2.1.lua: load("GCCcore/4.9.3") 5.4.0-2.26/Autoconf/2.69.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/Autoconf/2.69.lua: load("GCCcore/5.4.0") 5.4.0-2.26/Automake/1.15.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/Automake/1.15.lua: load("GCCcore/5.4.0") 5.4.0-2.26/Autotools/20150215.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/Autotools/20150215.lua: load("GCCcore/5.4.0") 5.4.0-2.26/bzip2/1.0.6.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/bzip2/1.0.6.lua: load("GCCcore/5.4.0") 5.4.0-2.26/CMake/3.6.1.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/CMake/3.6.1.lua: load("GCCcore/5.4.0") 5.4.0-2.26/CUDA/8.0.44:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/CUDA/8.0.44: module load GCCcore/5.4.0 5.4.0-2.26/CUDA/8.0.44-GCC-5.4.0-2.26.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/CUDA/8.0.44-GCC-5.4.0-2.26.lua: load("GCCcore/5.4.0") 5.4.0-2.26/CUDA/8.0.44.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/CUDA/8.0.44.lua: load("GCCcore/5.4.0") 5.4.0-2.26/GMP/6.1.1.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/GMP/6.1.1.lua: load("GCCcore/5.4.0") 5.4.0-2.26/hwloc/1.11.3:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/hwloc/1.11.3: module load GCCcore/5.4.0 5.4.0-2.26/libffi/3.2.1.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/libffi/3.2.1.lua: load("GCCcore/5.4.0") 5.4.0-2.26/libtool/2.4.6.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/libtool/2.4.6.lua: load("GCCcore/5.4.0") 5.4.0-2.26/libxml2/2.9.4.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/libxml2/2.9.4.lua: load("GCCcore/5.4.0") 5.4.0-2.26/numactl/2.0.11:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/numactl/2.0.11: module load GCCcore/5.4.0 5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1: module load GCCcore/5.4.0 5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1-INTERFACE64:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1-INTERFACE64: module load GCCcore/5.4.0 5.4.0-2.26/OpenMPI/1.10.3:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/OpenMPI/1.10.3: module load GCCcore/5.4.0 5.4.0-2.26/OpenMPI/1.10.3~:if { ![ is-loaded GCCcore/5.4.0 ] } { 5.4.0-2.26/OpenMPI/1.10.3~: module load GCCcore/5.4.0 5.4.0-2.26/XZ/5.2.2.lua:if not isloaded("GCCcore/5.4.0") then 5.4.0-2.26/XZ/5.2.2.lua: load("GCCcore/5.4.0") 6.2.0-2.27/hwloc/1.11.4:if { ![ is-loaded GCCcore/6.2.0 ] } { 6.2.0-2.27/hwloc/1.11.4: module load GCCcore/6.2.0 6.2.0-2.27/numactl/2.0.11:if { ![ is-loaded GCCcore/6.2.0 ] } { 6.2.0-2.27/numactl/2.0.11: module load GCCcore/6.2.0 6.2.0-2.27/OpenMPI/2.0.1:if { ![ is-loaded GCCcore/6.2.0 ] } { 6.2.0-2.27/OpenMPI/2.0.1: module load GCCcore/6.2.0 6.3.0-2.27/hwloc/1.11.5.lua:if not isloaded("GCCcore/6.3.0") then 6.3.0-2.27/hwloc/1.11.5.lua: load("GCCcore/6.3.0") 6.3.0-2.27/numactl/2.0.11.lua:if not isloaded("GCCcore/6.3.0") then 6.3.0-2.27/numactl/2.0.11.lua: load("GCCcore/6.3.0") 6.3.0-2.27/OpenBLAS/0.2.19-LAPACK-3.7.0.lua:if not isloaded("GCCcore/6.3.0") then 6.3.0-2.27/OpenBLAS/0.2.19-LAPACK-3.7.0.lua: load("GCCcore/6.3.0") 6.3.0-2.27/OpenMPI/2.0.2.lua:if not isloaded("GCCcore/6.3.0") then 6.3.0-2.27/OpenMPI/2.0.2.lua: load("GCCcore/6.3.0") --module-only is indeed useful to regenerate the affected modules, but it needs to be used with care, it's not 100% perfect yet (some 'setenv' or 'prepend_path' statement may be missing or contain incorrect values in some cases, or the easyblock used for regenerating the module file may crash). Not sure I understand this. Are you suggesting, I should do a full build of all the module on the list? So, back up the existing module files first, and then do a 'diff' after regenerating the modules that include a "load GCCcore" to make sure nothing is missing in the regenerated module file. Hmm, that requires one understands these modules and what needs to be there. T o be honnest unless I hit issues, I take a fair amount of Easybuild on trust (and complain here if stuff breaks). If you notice anything strange, please let us know. No worries - you know me, that I will do this. Warm regards Joachim Also, if you could share a list of module files affected by this bug in your setup, that would be nice. regards, Kenneth Thanks and best wishes Joachim * bug fix in packaging support with FPM where unexpected characters in the software description caused problems * patch for XZ 5.2.2 to avoid breaking the 'rpm' command when the XZ module is loaded * ensure that the right ncurses dependency is picked up in the CMake easyconfig to get a working 'ccmake' * updates to easyblocks CGAL, impi, imkl, MCR, NWChem and Qt for recent versions of these software packages * easyconfig files for the new iomkl/2017a and intel/2017.02 compiler toolchains * fixed source URLS for various software packages * lots of style fixes in existing easyconfig files (in order to enable automatic style checking in easyconfig pull requests in the near future) * support for 16 new software packages, incl. Caffe * updated easyconfigs for binutils 2.28, NWChem 6.6, matplotlib 2.0.0, VTK 7.1.0, etc. This brings the total number of supported software packages to 1,168 [2]! A detailed overview of all changes is available in the release notes [3]. Thanks to everyone who contributed to this release in one way or another! To upgrade to EasyBuild v3.1.1, there are several options, see [4]. Two particularly easy options include: * eb --install-latest-eb-release # requires EasyBuild v2.9.0 or more recent * eb --from-pr 4266 # use easyconfig from PR #4266 [5] Enjoy! regards, Kenneth (a.k.a. boegel) EasyBuild release manager [1] https://pypi.python.org/pypi/easybuild/3.1.1 [2] http://easybuild.readthedocs.io/en/latest/version-specific/Supported_software.html [3] http://easybuild.readthedocs.io/en/latest/Release_notes.html [4] http://easybuild.readthedocs.io/en/latest/Installation.html#updating-an-existing-easybuild-installation [5] https://github.com/hpcugent/easybuild-easyconfigs/pull/4266/files

