Skip to content

[NCO] [package list]

NCO/5.1.0-cpeCray-22.08 (NCO-5.1.0-cpeCray-22.08.eb)

This software is archived in the LUMI-EasyBuild-contrib GitHub repository as easybuild/easyconfigs/__archive__/n/NCO/NCO-5.1.0-cpeCray-22.08.eb. The corresponding module would be NCO/5.1.0-cpeCray-22.08.

# contributed by Luca Marsella (CSCS), updated by Samuel Omlin (CSCS)
# Adapted by Kurt Lust (kurt.lust@uantwerpen.be) for the LUMI consortium
easyblock = 'ConfigureMake'

local_GSL_version =          '2.7.1'         # https://ftp.gnu.org/gnu/gsl/
local_JasPer_version =       '3.0.4'         # https://github.com/jasper-software/jasper/releases
local_UDUNITS_version =      '2.2.28'        # ftp://ftp.unidata.ucar.edu/pub/udunits

name =    'NCO'
version = '5.1.0'

homepage = 'http://nco.sourceforge.net/'

whatis = [
    "Description: The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, and HDF5."
]

description = """
The NCO toolkit manipulates and analyzes data stored in netCDF-accessible
formats, including DAP, HDF4, and HDF5.

This version was build with cray-libsci unloaded as it causes crashes in
the tests. If work with NCO depends heavily on an optimized BLAS, it may
be very inefficient in this module.
"""

docurls = [
    'Manual pages for the commands in section 1'
    'Support for the info command: info nco',
]

toolchain = {'name': 'cpeCray', 'version': '22.08'}
toolchainopts = {'opt': True, 'pic': True}

# https://github.com/nco/nco/archive/refs/tags/5.0.6.tar.gz
sources = [
    {
        'download_filename': '%(version)s.tar.gz',
        'filename':          SOURCELOWER_TAR_GZ,
        'source_urls':       ['https://github.com/nco/nco/archive/']
    }
]
#source_urls = ['https://github.com/nco/nco/archive/']
#sources = ['%(version)s.tar.gz']
#patches = ['NCO-%(version)s_fix_build_of_cxx_interface.patch']
checksums = [
    '6f0ba812e0684881a85ebf3385117761cffbba36ba842889cc96f111157f89c2',  # nco-5.0.6.tar.gz
]

builddependencies = [ # Create a reproducible build environment.
    ('buildtools',   '%(toolchain_version)s',   '', True),
]

dependencies = [
    # Cray packages
    ('cray-hdf5',   EXTERNAL_MODULE),
    ('cray-netcdf', EXTERNAL_MODULE),
    # LUMI software stack
    ('GSL',         local_GSL_version,    '-OpenMP'), # NCO by default compiles with OpenMP enabled.
    ('JasPer',      local_JasPer_version),
    ('UDUNITS',     local_UDUNITS_version),             # Also pulls in expat
    # Contributed dependencies
    ('ANTLR',       '2.7.7',               '-python3'), # It really requires this antique version!
    ('libdap',      '3.20.10'),
]

preconfigopts = 'module unload cray-libsci ; '
# Configure will complain that it cannot find the udunits2.xml file. However, it only checks in
# some fixed locations and not in the the path pointed to by UDUNITS2_XML_PATH.
configopts = "--disable-udunits --enable-udunits2 "
# If that doesn't work, uncomment the next line instead
# configopts = "--enable-udunits --disable-udunits2 "

prebuildopts = 'module unload cray-libsci ; '

sanity_check_paths = {
    'files': ['bin/ncbo'],
    'dirs':  [],
}

sanity_check_commands = [
    'ncap2 --version',
    'ncatted --version',
    'ncbo --version',
    'ncclimo --version',
    'ncecat --version',
    'ncflint --version',
    'ncks --version',
    'ncpdq --version',
    'ncra --version',
    'ncremap --version',
    'ncrename --version',
    'ncwa --version',
]

moduleclass = 'data'

[NCO] [package list]