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