Skip to content

[XZ] [package list]

XZ/5.4.4-cpeCray-24.03 (XZ-5.4.4-cpeCray-24.03.eb)

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

EasyConfig:

# Contributed by Kurt Lust, LUMI project & UAntwerpen
easyblock = 'ConfigureMake'

local_gettext_version =      '0.22'          # https://ftp.gnu.org/pub/gnu/gettext/
local_XZ_version =           '5.4.4'         # https://tukaani.org/xz/

name =    'XZ'
version = local_XZ_version

homepage = 'http://tukaani.org/xz/'

whatis = [
    'Description: XZ data compression libraries and utilities',
    'This module provides the XZ command line utilities and static and shared libraries',
]

description = """
XZ Utils is free general-purpose data compression software with a high
compression ratio. XZ Utils were written for POSIX-like systems, but also work
on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.

The core of the XZ Utils compression code is based on LZMA SDK, but it has been
modified quite a lot to be suitable for XZ Utils. The primary compression
algorithm is currently LZMA2, which is used inside the .xz container format.
With typical files, XZ Utils create 30 % smaller output than gzip and 15 %
smaller output than bzip2.

XZ Utils consist of several components:
* liblzma is a compression library with an API similar to that of zlib.
* xz is a command line tool with syntax similar to that of gzip.
* xzdec is a decompression-only tool smaller than the full-featured xz tool.
* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to
  ease viewing, grepping, and comparing compressed files.
* Emulation of command line tools of LZMA Utils eases transition from LZMA Utils
  to XZ Utils.

While liblzma has a zlib-like API, liblzma doesn't include any file I/O
functions. A separate I/O library is planned, which would abstract handling of
.gz, .bz2, and .xz files with an easy to use API.

This module provides both the command line utilities and static and shared
libraries.
"""

usage = """
The main command line tools are:
* Compression/decompression tools for .xz and .lzma: xz, unxz, xzcat, lzma,
  unlzma and lzcat
* A smaller decompression-only tool for .xz and .lzma: xzdec and lzmadec
* Comparison of compressed files: xzcmp, xzdiff, lzcmp and lzdiff
* Grep-like searching in compressed files: xzgrep, xzegrep, xzfgrep,
  lzgrep, lzegrep, lzfgrep
* Viewing compressed text files: xzless, xzmore, lzless and lzmore.

The API is poorly documented. One should check the include files for more
information on the API.
"""

docurls = [
    'Man pages for the command line tools',
]

docpaths = [
    'share/doc/xz'
]

software_license_urls = [
    'https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD', # Again a repository where it is not easy to get a link for a specific version as it uses commits instead of tags.
]

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

sources =     [SOURCELOWER_TAR_XZ]
source_urls = ['http://tukaani.org/xz/']
checksums =   ['705d0d96e94e1840e64dec75fc8d5832d34f6649833bec1ced9c3e08cf88132e',]  # xz-5.4.4.tar.xz

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

dependencies = [
]

# 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 = '--disable-nls --disable-xz --disable-xzdec' # Use this if there is no gettext. xz and xzdec are two executables the require gettext.

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp AUTHORS ChangeLog COPYING* NEWS README THANKS %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['lib/liblzma.%s' % x for x in ['a', 'la', SHLIB_EXT]] +
             ['bin/xz', 'bin/lzmainfo', 'include/lzma.h', 'include/lzma/index.h'],
    'dirs':  ['share/man/man1']
}

sanity_check_commands = [
    'pkg-config --libs liblzma',
    'xz --version',
    'xzdec --version',
    'xzdiff --version',
    'xzgrep --version',
    'xzless --version',
    'xzmore --version',
    'lzmadec --version',
    'lzmainfo --version',
]

moduleclass = 'tools'

[XZ] [package list]