Skip to content

[ncurses] [package list]

ncurses/6.4-cpeGNU-22.12 (ncurses-6.4-cpeGNU-22.12.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider ncurses/6.4-cpeGNU-22.12.

EasyConfig:

# contributed by Luca Marsella (CSCS)

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.
"""

toolchain = {'name': 'cpeGNU', 'version': '22.12'}
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),
]

local_common_configopts  = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms "
local_common_configopts += "--with-termlib --enable-termcap " # The latter cannot be combined with --with-ticlib
local_common_configopts += "--enable-pc-files --with-pkg-config-libdir=%(installdir)s/lib/pkgconfig "
# More complete setup that interfers even more with system binaries:
#local_common_configopts  = '--without-shared --with-normal --with-termlib --with-ticlib  --enable-overwrite'
#local_common_configopts += '--without-ada --enable-symlinks --with-versioned-syms '
#local_common_configopts += '--enable-pc-files --with-pkg-config-libdir=%(installdir)s/lib/pkgconfig '
configopts = [
    # default build
    local_common_configopts,
    # the UTF-8 enabled version (ncursesw)
    local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/",
]

# 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']


_target_suffix = ['', 'w']  # '': ncurses, 'w': ncursesw
_lib_suffix = ['%s%s' % (x, y) for x in _target_suffix for y in ['.a', '_g.a', '.' + SHLIB_EXT]]
_lib_names = ['form', 'menu', 'ncurses', 'panel', 'tinfo']

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' % (x, y) for x in _lib_names for y in _lib_suffix] +
             ['lib/libncurses++%s.a' % x for x in _target_suffix] +
             ['lib/pkgconfig/%s%s.pc' % (x, y) for x in ['form', 'menu', 'ncurses', 'ncurses++', 'panel'] for y in _target_suffix],
    'dirs':  ['include', 'include/ncursesw'],
}

sanity_check_commands = [
    'infocmp -V',
    'ncurses6-config --version',
    'ncurses6-config --version',
    'tabs -V',
    'tic -V',
    'toe -V',
    'tput -V',
    'tset -V',
] + [ 'pkg-config --libs %s%s' % (x, y) for x in ['form', 'menu', 'ncurses', 'ncurses++', 'panel'] for y in ['', 'w'] ]

moduleclass = 'devel'

[ncurses] [package list]