Skip to content

[libaec] [package list]

libaec/1.0.6-cpeCray-24.03 (libaec-1.0.6-cpeCray-24.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider libaec/1.0.6-cpeCray-24.03.

EasyConfig:

# Contributed by Matthias Kraushaar and Luca Marsella (CSCS)
# Modified for use on LUMI by Kurt Lust (kurt.lust@uantwerpen.be)
# for the LUMI consortium.
easyblock = 'CMakeMake'

local_libaec_version =       '1.0.6'         # https://gitlab.dkrz.de/k202009/libaec/-/tags

name =    'libaec'
version = local_libaec_version

homepage = 'https://gitlab.dkrz.de/k202009/libaec'

whatis = [
    'Description: libaec - Adaptive Entropy Coding Library (lossless compression)'
]

description = """
Libaec, the Adaptive Entropy Coding library,  provides fast lossless compression
of 1 up to 32 bit wide signed or unsigned integers (samples). The library
achieves best results for low entropy data as often encountered in space imaging
instrument data or numerical model output from weather or climate simulations. While
floating point representations are not directly supported, they can also be
efficiently coded by grouping exponents and mantissa.


*****************  SZIP compatibility ***********************
Libaec includes a free drop-in replacement for the SZIP library (http://www.hdfgroup.org/doc_resource/SZIP).
Just replace SZIP's shared library libsz.so* with libaec.so* and libsz.so* from libaec.
Code which is dynamically linked with SZIP such as HDF5 should continue to work with libaec.
No re-compilation required. HDF5 files which contain SZIP encoded data can be decoded by HDF5
using libaec and vice versa.
"""

docurls = [
    'man page for aec in section 1',
]

software_license_urls = [
    f'https://gitlab.dkrz.de/k202009/libaec/-/blob/v{version}/LICENSE.txt',
]

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

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

# https://gitlab.dkrz.de/k202009/libaec/-/archive/v1.0.6/libaec-v1.0.6.tar.bz2
sources =     [SOURCELOWER_TAR_BZ2]
source_urls = ['https://gitlab.dkrz.de/k202009/libaec/-/archive/v%(version)s/']
checksums =   ['9b89db38ced9d7c9ddb172236f87ba8e8dbb9840a88f43ee9e1def410f1413ac']

# 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

configopts  = '-DAEC_FUZZING=OFF ' # OFF is the default, this is just to stress we use the default configuration.
configopts += '-DCMAKE_INSTALL_LIBDIR=lib'

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../%(namelower)s-v%(version)s-* && cp AUTHORS CHANGELOG.md LICENSE.txt README.md README.SZIP THANKS %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/lib%s.%s' % (x, y) for x in ['aec', 'sz'] for y in ['a', SHLIB_EXT]] +
             [f'share/licenses/{name}/LICENSE.txt'],
    'dirs':  ['lib', 'include'],
}

sanity_check_commands = [
    'aec -h',
]

moduleclass = 'data'

[libaec] [package list]