Skip to content

[Lzip-tools] [package list]

Lzip-tools/25.03 (Lzip-tools-25.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider Lzip-tools/25.03.

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 =         '25.03'

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'

[Lzip-tools] [package list]