ncurses/6.4-cpeCray-24.03 (ncurses-6.4-cpeCray-24.03.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider ncurses/6.4-cpeCray-24.03
.
EasyConfig:
# contributed by Luca Marsella (CSCS)
# Modified by Kurt Lust for the LUMI consortium.
easyblock = 'ConfigureMake'
local_ncurses_version = '6.4' # https://ftp.gnu.org/pub/gnu/ncurses/
name = 'ncurses'
version = local_ncurses_version
homepage = 'http://www.gnu.org/software/ncurses/'
description = """
The Ncurses (new curses) library is a free software emulation
of curses in System V Release 4.0, and more. It uses Terminfo format, supports
pads and color and multiple highlights and forms characters and function-key
mapping, and has all the other SYSV-curses enhancements over BSD Curses.
"""
software_license_urls = [
'https://invisible-island.net/ncurses/ncurses-license.html',
'https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blob_plain;f=COPYING;hb=79b9071f2be20a24c7be031655a5638f6032f29f', # For version 6.4
]
toolchain = {'name': 'cpeCray', 'version': '24.03'}
toolchainopts = {'optarch': True, 'pic': True}
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159']
builddependencies = [ # Create a reproducible build environment.
('buildtools', '%(toolchain_version)s', '', True),
]
# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts
pretestopts = preconfigopts
preinstallopts = preconfigopts
preconfigopts += 'LDFLAGS="$LDFLAGS -Wl,--undefined-version" '
local_common_configopts = "--with-shared --with-normal --with-debug --enable-overwrite --without-ada --enable-symlinks "
#local_common_configopts += "--with-termlib --enable-termcap " # The latter cannot be combined with --with-ticlib
#local_common_configopts += "--disable-leaks --disable-root-environ --enable-getcap --enable-getcap-cache --enable-hard-tabs --enable-termcap --with-termlib --with-trace --without-cxx-binding " # Set of options based on package/ncurses.sym
local_common_configopts += "--disable-leaks --disable-root-environ --disable-termcap --enable-getcap --enable-getcap-cache --enable-hard-tabs --enable-termcap --with-termlib --with-trace" # Set of options based on package/ncurses.sym
local_common_configopts += "--with-cxx-binding " # Just to be sure
#local_common_configopts += "--with-pthread --enable-reentrant --enable-weak-symbols" # Is this the trick to get the SUSE TW symbols included? Or should we delete --with-pthread and only use --enable-reentrant?
#local_common_configopts += "--enable-reentrant --enable-weak-symbols" # Is this the trick to get the SUSE TW symbols included? Or should we delete --with-pthread and only use --enable-reentrant?
local_common_configopts += "--enable-pc-files --with-pkg-config-libdir=%(installdir)s/lib/pkgconfig "
configopts = [
# default build
#local_common_configopts + "--with-versioned-syms=%(builddir)s/ncurses-%(version)s/package/ncursest.map ",
# the UTF-8 enabled version (ncursesw)
#local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/" + "--with-versioned-syms=%(builddir)s/ncurses-%(version)s/package/ncursestw.map ",
# default build
local_common_configopts + "--with-versioned-syms",
# the UTF-8 enabled version (ncursesw)
local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/ " + "--with-versioned-syms",
]
# Symlink libtinfo to libncurses
# NOT NEEDED WITH THE MODIFIED OPTIONS THAT WE TOOK.
# libncurses with this configopts has all the symbols from libtinfo, but some packages look for libtinfo specifically
#postinstallcmds = ['cd %(installdir)s/lib && for l in libncurses{.,_,w}*; do ln -s "${l}" "${l/ncurses/tinfo}"; done']
postinstallcmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cp ANNOUNCE AUTHORS COPYING MANIFEST NEWS README %(installdir)s/share/licenses/%(name)s',
]
local_libs = ["form", "menu", "ncurses", "panel"]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config",
"reset", "tabs", "tic", "toe", "tput", "tset"]] +
['lib/lib%s%s.a' % (x, y) for x in local_libs for y in ['', '_g', 'w', 'w_g']] +
['lib/lib%s%s.%s' % (x, y, SHLIB_EXT) for x in local_libs for y in ['', 'w']] +
['lib/libncurses++%s.a' % x for x in ['', 'w']] +
['lib/pkgconfig/%s%s.pc' % (x, y) for x in local_libs for y in ['', 'w']] +
[f'share/licenses/{name}/COPYING'],
'dirs': ['include', 'include/ncursesw'],
}
sanity_check_commands = [
'infocmp -V',
'ncurses6-config --version',
'tabs -V',
'tic -V',
'toe -V',
'tput -V',
'tset -V',
] + [ 'pkg-config --libs %s%s' % (x, y) for x in local_libs for y in ['', 'w'] ]
moduleclass = 'devel'