Hi Kenneth Can I ask a simpler question? As you see from the list below, a couple of key modules (widely used) are affected by this. On the other hand our centre is not swamped in user queries about these modules being broken. How severe is that bug? What are the implications? Is it just, when e.g. using a foss toolchain, you are getting the same gcc twice (once as a gcc module and once as a gcccore module)? I assume there was discussion about this on the mailing list, but it sort of bypassed me, and a search in my mailbox doesn’t show anything obvious either.
On the other hand, I have started to install stuff like e.g. cmake in GCCcore to have it in my foss, intel and pgi toolchains (one install fixes three :) ). I am wondering whether the fix will “inhibit” this. Could I get a pointer to where I can read up on this? Thanks Joachim On 8 Mar 2017, at 15:23, Joachim Hein <[email protected]<mailto:[email protected]>> wrote: 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

