Skip to content

[libdeflate] [package list]

libdeflate/1.18-cpeCray-23.12 (libdeflate-1.18-cpeCray-23.12.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider libdeflate/1.18-cpeCray-23.12.

EasyConfig:

# Author: Pavel Grochal (INUITS)
# License: GPLv2

easyblock = 'CMakeMake'

local_libdeflate_version =   '1.18'          # https://github.com/ebiggers/libdeflate/releases

name =    'libdeflate'
version = local_libdeflate_version

homepage = 'https://github.com/ebiggers/libdeflate'

whatis = [
    'Description: libdeflate is a heavily optimized library for DEFLATE/zlib/gzip compression and decompression.'
]

description = """
libdeflate is a library for fast, whole-buffer DEFLATE-based compression and
decompression.

The supported formats are:
  * DEFLATE (raw)
  * zlib (a.k.a. DEFLATE with a zlib wrapper)
  * gzip (a.k.a. DEFLATE with a gzip wrapper)

libdeflate is heavily optimized. It is significantly faster than the zlib library,
both for compression and decompression, and especially on x86 processors. In
addition, libdeflate provides optional high compression modes that provide a better
compression ratio than the zlib's "level 9".

libdeflate itself is a library, but the following command-line programs which use
this library are also provided:

  * gzip (or gunzip), a program which mostly behaves like the standard equivalent, except
    that it does not yet have good streaming support and therefore does not yet support
    very large files
  * benchmark, a program for benchmarking in-memory compression and decompression
"""

software_license_urls = [
    f'https://github.com/ebiggers/libdeflate/blob/v{version}/COPYING',
]

toolchain = {'name': 'cpeCray', 'version': '23.12'}

github_account = 'ebiggers'
sources = {
    'download_filename': 'v%(version)s.tar.gz',
    'filename':          SOURCELOWER_TAR_GZ,
    'source_urls':       [GITHUB_SOURCE],
}
checksums = ['225d982bcaf553221c76726358d2ea139bb34913180b20823c782cede060affd']

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

configopts = '-DCMAKE_INSTALL_LIBDIR=lib'

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cd ../%(namelower)s-%(version)s && cp COPYING NEWS.md README.md %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': [
        'bin/%(name)s-gunzip', 'bin/%(name)s-gzip',
        'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT,
        'include/%(name)s.h',
        f'share/licenses/{name}/COPYING',
    ],
    'dirs': [],
}

sanity_check_commands = [
    '%(name)s-gzip -h',
    '%(name)s-gunzip -h',
]

moduleclass = 'system'

[libdeflate] [package list]