Lzip-tools/24.11 (Lzip-tools-24.11.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider Lzip-tools/24.11.
EasyConfig:
#DOC Lzip and various related tools, to be installed in `LUMI/24.03 partition/common`.
#DOC
#DOC First install `lzip-bootstrap-1.25.eb`: `eb lzip-bootstrap-1.25.eb`, then load
#DOC that module: `module load lzip-bootstrap/1.25`, and then install this EasyConfig:
#DOC `eb lzip-tools-24.03.eb`.
easyblock = 'Bundle'
local_LUMI_version = '24.11'
name = 'Lzip-tools'
version = local_LUMI_version
local_lzip_version = '1.25' # https://download.savannah.gnu.org/releases/lzip/
local_lunzip_version = '1.15' # https://download.savannah.gnu.org/releases/lzip/lunzip/
local_plzip_version = '1.12' # https://download.savannah.gnu.org/releases/lzip/plzip/
local_lzlib_version = '1.15' # https://download.savannah.gnu.org/releases/lzip/lzlib/
local_lziprecover_version = '1.25' # https://download.savannah.gnu.org/releases/lzip/lziprecover/
local_tarlz_version = '0.27.1' # https://download.savannah.gnu.org/releases/lzip/tarlz/
local_Zutils_version = '1.14' # https://download.savannah.gnu.org/releases/zutils/
homepage = 'https://www.nongnu.org/lzip/'
whatis = [
'Description: A number of lzip-related tools, compiled with the SYSTEM toolchain',
'Contains: lzip, lziprecover, plzip, tarlz, Zutils'
]
description = f""""
This module provides lzip and a number of related tools:
* lzip {local_lzip_version}: Lzip is a lossless data compressor with a user interface
similar to the one of gzip or bzip2. Lzip uses a simplified form of LZMA
(Lempel-Ziv-Markov chain-Algorithm) designed to achieve complete
interoperability between implementations. Decompression speed is
intermediate between gzip and bzip2.
* lunzip {local_lunzip_version} is a decompressor for the lzip format written in C. Its small
size makes it well suited for embedded devices or software installers that
need to decompress files but don't need compression capabilities.
Note that you can also decompress with "lzip -d" which is different code.
* plzip {local_plzip_version}: Plzip is a massively parallel (multi-threaded) implementation
of lzip.
* lziprecover {local_lziprecover_version}: Lziprecover is a data recovery tool and decompressor for
files in the lzip compressed data format (.lz). Lziprecover also provides
Forward Error Correction (FEC) able to repair any kind of file.
Lziprecover can remove the damaged members from multimember files, for
example multimember tar.lz archives.
Lziprecover provides random access to the data in multimember files; it
only decompresses the members containing the desired data.
Lziprecover is not a replacement for regular backups, but a last line of
defense for the case where the backups are also damaged.
* tarlz {local_tarlz_version} is a massively parallel (multi-threaded) combined implementation
of the tar archiver and the lzip compressor.
Keeping the alignment between tar members and lzip members has two
advantages. It adds an indexed lzip layer on top of the tar archive,
making it possible to decode the archive safely in parallel. It also
reduces the amount of data lost in case of corruption. Compressing a
tar archive with plzip may even double the amount of files lost for
each lzip member damaged because it does not keep the members aligned.
* Zutils {local_Zutils_version} is a collection of utilities able to process any combination
of compressed and uncompressed files transparently. If any file given,
including standard input, is compressed, its decompressed content is used.
Compressed files are decompressed on the fly; no temporary files are created.
Data format is detected by its identifier string (magic bytes), not by the
file name extension. Empty files are considered uncompressed.
"""
docurls = [
'Man pages for lzip, lunzip, lziprecover, plzip, tarlz, zca, zcmp, zdiff, zgrep, ztest and zupdate in section 1',
'info command support in lzip, lziprecover, plzip, tarlz and zutils',
'Web-based documentation for lzip: https://www.nongnu.org/lzip/manual/lzip_manual.html',
'Web-based documentation for lziprecover: https://www.nongnu.org/lzip/manual/lziprecover_manual.html',
'Web-based documentation for plzip: https://www.nongnu.org/lzip/manual/plzip_manual.html',
'Web-based documentation for tarlz: https://www.nongnu.org/lzip/manual/tarlz_manual.html',
'Web-based documentation for Zutils: https://www.nongnu.org/zutils/manual/zutils_manual.html',
]
toolchain = SYSTEM
builddependencies = [
('buildtools', local_LUMI_version), # Needed for Serf, useful for the rest.
]
default_easyblock = 'ConfigureMake'
components = [
('lzlib', local_lzlib_version, {
'easyblock': 'ConfigureMake',
# https://download.savannah.gnu.org/releases/lzip/lzlib/lzlib-1.15.tar.gz
'sources': [SOURCELOWER_TAR_GZ], # .tar.lz not yet supported on our systems and not available as a constant in EasyBuild.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip/lzlib'],
'checksums': ['4afab907a46d5a7d14e927a1080c3f4d7e3ca5a0f9aea81747d8fed0292377ff'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W"',
}),
('lzip', local_lzip_version, {
'easyblock': 'ConfigureMake',
# https://download.savannah.gnu.org/releases/lzip/lzip-1.25.tar.gz
'sources': [SOURCELOWER_TAR_GZ], # .tar.lz not yet supported on our systems and not available as a constant in EasyBuild.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip'],
'checksums': ['09418a6d8fb83f5113f5bd856e09703df5d37bae0308c668d0f346e3d3f0a56f'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W"',
}),
('lunzip', local_lunzip_version, {
'easyblock': 'ConfigureMake',
# https://download.savannah.gnu.org/releases/lzip/lunzip/lunzip-1.15.tar.gz
'sources': [SOURCELOWER_TAR_GZ], # .tar.lz not yet supported on our systems and not available as a constant in EasyBuild.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip/lunzip'],
'checksums': ['fdb930b87672a238a54c4b86d63df1c86038ff577d512adbc8e2c754c046d8f2'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CFLAGS="-march=znver1 -O2 -Wall -W"',
}),
('lziprecover', local_lziprecover_version, {
'easyblock': 'ConfigureMake',
# https://https://download.savannah.gnu.org/releases/lzip//lziprecover/lziprecover-1.25.tar.gz
'sources': [SOURCELOWER_TAR_GZ], # .tar.lz not yet supported on our systems and not available as a constant in EasyBuild.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip/lziprecover'],
'checksums': ['4f392f9c780ae266ee3d0db166b0f1b4d3ae07076e401dc2b199dc3a0fff8b45'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W"',
}),
('plzip', local_plzip_version, {
'easyblock': 'ConfigureMake',
# https://download.savannah.gnu.org/releases/lzip/plzip/plzip-1.12.tar.gz
'sources': [SOURCELOWER_TAR_GZ], # .tar.lz not yet supported on our systems and not available as a constant in EasyBuild.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip/plzip'],
'checksums': ['50d71aad6fa154ad8c824279e86eade4bcf3bb4932d757d8f281ac09cfadae30'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W" ' +
'CPPFLAGS="-I%(installdir)s/include" ' +
'LDFLAGS="-L%(installdir)s/lib"',
}),
('tarlz', local_tarlz_version, {
'easyblock': 'ConfigureMake',
# https://download.savannah.gnu.org/releases/lzip/tarlz/tarlz-0.27.1.tar.lz
'sources': [{
'filename': '%(name)s-%(version)s.tar.lz', # Needs LUMI/24.11 as otherwise EasyBuild has no access to lzip.
'source_urls': ['https://download.savannah.gnu.org/releases/lzip/tarlz'],
#'extract_cmd': 'lzip -cd %s | tar -xf -',
}],
'checksums': ['7091968e8f9b5333730e7a558ebf5aa9089d9f0528e6aea994c6f24a9d46a03f'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W" ' +
'CPPFLAGS="-I%(installdir)s/include" ' +
'LDFLAGS="-L%(installdir)s/lib"',
}),
('Zutils', local_Zutils_version, {
'easyblock': 'ConfigureMake',
# ttps://download.savannah.gnu.org/releases/zutils/zutils-1.14.tar.lz
'sources': [{
'filename': '%(namelower)s-%(version)s.tar.lz',# Needs LUMI/24.11 as otherwise EasyBuild has no access to lzip.
'source_urls': ['https://download.savannah.gnu.org/releases/zutils'],
#'extract_cmd': 'lzip -cd %s | tar -xf -',
}],
'checksums': ['0225a7cbe3bdeade33ef08323d7fe7fb0c6edb1e8e0955287d50b21b7b5d989e'],
'start_dir': '%(namelower)s-%(version)s',
'configopts': 'CXXFLAGS="-march=znver1 -O2 -Wall -W" ' +
'CPPFLAGS="-I%(installdir)s/include" ' +
'LDFLAGS="-L%(installdir)s/lib"',
}),
]
postinstallcmds = [
# Don't need the static library anymore, delete
'/bin/rm -rf %(installdir)s/lib',
'mkdir -p %(installdir)s/share/licenses/lzip && ' +
f'cd ../lzip-{local_lzip_version} && cp AUTHORS COPYING NEWS README %(installdir)s/share/licenses/lzip',
'mkdir -p %(installdir)s/share/licenses/lziprecover && ' +
f'cd ../lziprecover-{local_lziprecover_version} && cp AUTHORS COPYING NEWS README %(installdir)s/share/licenses/lziprecover',
'mkdir -p %(installdir)s/share/licenses/plzip && ' +
f'cd ../plzip-{local_plzip_version} && cp AUTHORS COPYING NEWS README %(installdir)s/share/licenses/plzip',
'mkdir -p %(installdir)s/share/licenses/tarlz && ' +
f'cd ../tarlz-{local_tarlz_version} && cp AUTHORS COPYING NEWS README %(installdir)s/share/licenses/tarlz',
'mkdir -p %(installdir)s/share/licenses/Zutils && ' +
f'cd ../zutils-{local_Zutils_version} && cp AUTHORS COPYING NEWS README %(installdir)s/share/licenses/Zutils',
]
local_exe = ['lzip', 'lunzip', 'lziprecover', 'plzip', 'tarlz',
'zcat', 'zcmp', 'zdiff', 'zegrep', 'zfgrep', 'zgrep', 'ztest', 'zupdate']
sanity_check_paths = {
'files': ['bin/%s' % x for x in local_exe],
'dirs': ['share/man/man1']
}
modluafooter = f"""
extensions( "lzip/{local_lzip_version}, lunzip/{local_lunzip_version}, lziprecover/{local_lziprecover_version}, " ..
"plzip/{local_plzip_version}, tarlz/{local_tarlz_version}, Zutils/{local_Zutils_version}" )
"""
moduleclass = 'tools'