ncurses
License information
The ncurses license has a complicated history of changes. For recent versions, the license notice can be found in the COPYING file in the source repository.
From LUMI/23.12 on, the COPYING file can also be found in the
$EBROOTNCURSES/share/licenses/ncurses
directory after loading the module.
User documentation
This module has known incompatibilities with some tools that come with SUSE Linux,
but we fail to find a proper solution to build ncurses
in a way that is fully
compatible with SUSE Linux. The problem is that the SUSE ncurses
library contains
some versioned symbols for ancient or nonstandard versions of ncurses
that is not
included when building more recent regular versions.
One application that fails is the gdb
command. A workaround for this command is
to start it as
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider ncurses/<version>
.
EasyConfig:
-
ncurses/6.2-cpeAMD-22.08 (EasyConfig: ncurses-6.2-cpeAMD-22.08.eb)
-
ncurses/6.2-cpeAOCC-22.08 (EasyConfig: ncurses-6.2-cpeAOCC-22.08.eb)
-
ncurses/6.2-cpeCray-22.08 (EasyConfig: ncurses-6.2-cpeCray-22.08.eb)
-
ncurses/6.2-cpeGNU-22.08 (EasyConfig: ncurses-6.2-cpeGNU-22.08.eb)
-
ncurses/6.4-cpeAMD-22.12 (EasyConfig: ncurses-6.4-cpeAMD-22.12.eb)
-
ncurses/6.4-cpeAMD-23.09 (EasyConfig: ncurses-6.4-cpeAMD-23.09.eb)
-
ncurses/6.4-cpeAMD-23.12 (EasyConfig: ncurses-6.4-cpeAMD-23.12.eb)
-
ncurses/6.4-cpeAMD-24.03 (EasyConfig: ncurses-6.4-cpeAMD-24.03.eb)
-
ncurses/6.4-cpeAOCC-22.12 (EasyConfig: ncurses-6.4-cpeAOCC-22.12.eb)
-
ncurses/6.4-cpeAOCC-23.09 (EasyConfig: ncurses-6.4-cpeAOCC-23.09.eb)
-
ncurses/6.4-cpeAOCC-23.12 (EasyConfig: ncurses-6.4-cpeAOCC-23.12.eb)
-
ncurses/6.4-cpeAOCC-24.03 (EasyConfig: ncurses-6.4-cpeAOCC-24.03.eb)
-
ncurses/6.4-cpeCray-22.12 (EasyConfig: ncurses-6.4-cpeCray-22.12.eb)
-
ncurses/6.4-cpeCray-23.03 (EasyConfig: ncurses-6.4-cpeCray-23.03.eb)
-
ncurses/6.4-cpeCray-23.09 (EasyConfig: ncurses-6.4-cpeCray-23.09.eb)
-
ncurses/6.4-cpeCray-23.12 (EasyConfig: ncurses-6.4-cpeCray-23.12.eb)
-
ncurses/6.4-cpeCray-24.03 (EasyConfig: ncurses-6.4-cpeCray-24.03.eb)
-
ncurses/6.4-cpeGNU-22.12 (EasyConfig: ncurses-6.4-cpeGNU-22.12.eb)
-
ncurses/6.4-cpeGNU-23.09 (EasyConfig: ncurses-6.4-cpeGNU-23.09.eb)
-
ncurses/6.4-cpeGNU-23.12 (EasyConfig: ncurses-6.4-cpeGNU-23.12.eb)
-
ncurses/6.4-cpeGNU-24.03 (EasyConfig: ncurses-6.4-cpeGNU-24.03.eb)
Technical documentation
EasyBuild
6.2 from 21.06 on
-
We started from the regular EasyBuild configuration that does a dual pass build of ncurses to also build a version of the library with more/different options. We made this choice to ensure maximal compatibility with EasyConfigs from the main EasyBuild repository.
-
We also generate files for pkg-config, something that the original EasyConfig files didn't do.
-
There is a more complete setup in comments in the EasyConfig file but that one is probably even more dangerous as bash will pick it up, so there is a risk that the shell may not work the way it should anymore if a new shell is loaded.
6.2 from 22.06 on
-
We stuck to 6.2 as there is a bug in the generation of .pc files in 6.3. It is impossible to put the files in the correct location: The comibnation of
--enable-pc-files
and--with-pkg-config-libdir
produces problems in the configure step. -
Improvements:
-
Added a checksum
-
Added some symbolic links that are used in the standard EasyBuilders EasyConfig.
-
6.4 from 22.12 on
-
Skipped 6.3 used in 2022b and went immediately for 6.4 as it fixes the bug in the configure process of 6.3 when
--enable-pc-files
and--with-pkg-config-libdir
are used together. -
Tried a few new options in the EasyConfig.
-
Did not succeed in solving the compatibility problem with the
gdb
from SUSE when working on LUMI/22.12. -
For LUMI/23.12, license information was added to the installation.
The behaviour of the linker has changed in the Cray compiler and it now produces an error if the version script defines versions for symbols with exact matches that are not present. So we needed to add
-Wl,--undefined-version
to the linker options to work around this issue.We also did further work on trying to figure out how to get the proper version symbols in the libraries. We are now using a different set of options and also dropped the application-specific EasyBlock as that only added stuff in the background which is misleading while experimenting. The problem appears to be that NCURSEST/NCURSESTW symbols are used in the SUSE libraries, which should stand for the threaded version, yet the libraries have the names of the unthreaded versions, so it looks like some renaming may have taken place.
We have tried with
--enable-weak-symbols
which should not add thet
to the file name but haven't gotten it to work yet. It may need some special flags for the compiler and/or linker to work as expected.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
-
EasyConfig ncurses-6.2-cpeAMD-21.06.eb, with module ncurses/6.2-cpeAMD-21.06
-
EasyConfig ncurses-6.2-cpeAOCC-21.12.eb, with module ncurses/6.2-cpeAOCC-21.12
-
EasyConfig ncurses-6.2-cpeAOCC-22.06.eb, with module ncurses/6.2-cpeAOCC-22.06
-
EasyConfig ncurses-6.2-cpeCray-21.06.eb, with module ncurses/6.2-cpeCray-21.06
-
EasyConfig ncurses-6.2-cpeCray-21.08.eb, with module ncurses/6.2-cpeCray-21.08
-
EasyConfig ncurses-6.2-cpeCray-21.12.eb, with module ncurses/6.2-cpeCray-21.12
-
EasyConfig ncurses-6.2-cpeCray-22.06.eb, with module ncurses/6.2-cpeCray-22.06
-
EasyConfig ncurses-6.2-cpeGNU-21.06.eb, with module ncurses/6.2-cpeGNU-21.06
-
EasyConfig ncurses-6.2-cpeGNU-21.08.eb, with module ncurses/6.2-cpeGNU-21.08
-
EasyConfig ncurses-6.2-cpeGNU-21.12.eb, with module ncurses/6.2-cpeGNU-21.12
-
EasyConfig ncurses-6.2-cpeGNU-22.06.eb, with module ncurses/6.2-cpeGNU-22.06
-