Skip to content

Issue with Bundle checksums in EB 5.x #4931

@verdurin

Description

@verdurin

I was trying to update rMATS-turbo from 4.2.0 to 4.3.0.

However, something strange happens when I run inject-checksums.

This is the output, after I've deleted the existing outdated checksums:

ebcsum rMATS-turbo-4.3.0-gfbf-2023a.eb
== Temporary log file in case of crash /tmp/eb-fznmwn6n/easybuild-ddkey9my.log
== found valid index for /home/software/venvs/eb-5.1.0-py311/easybuild/easyconfigs, so using it...
== injecting sha256 checksums in /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0-gfbf-2023a.eb
== fetching sources & patches for rMATS-turbo-4.3.0-gfbf-2023a.eb...
  >> sources:
  >> /apps/eb/el8/upstream/sources/r/rMATS-turbo/v4.3.0.tar.gz
  >> /apps/eb/el8/upstream/sources/r/rMATS-turbo/v4.3.0.tar.gz
  >> patches:
  >> /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0_bamtools_as_dependency.patch
== backup of easyconfig file saved to /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0-gfbf-2023a.eb.bak_20250619095611_817297
== injecting sha256 checksums for sources & patches in rMATS-turbo-4.3.0-gfbf-2023a.eb...
== * v4.3.0.tar.gz: 8825a16f3ea8186d833ead55df0899c54a3da72b440f9674bcf3a9245d971805
== * v4.3.0.tar.gz: 8825a16f3ea8186d833ead55df0899c54a3da72b440f9674bcf3a9245d971805
== * rMATS-turbo-4.3.0_bamtools_as_dependency.patch: a4c70e3d8ef9723fcb801d39a62c132f8f1903fb3a60dad330de895c12f5f7e7

== Temporary log file(s) /tmp/eb-fznmwn6n/easybuild-ddkey9my.log* have been removed.
== Temporary directory /tmp/eb-fznmwn6n has been removed.

It looks normal.

However, no checksums are saved in the easyconfig file.

If I retain the old checksums and just update version, then use --force to generate new checksums:

$ ebcsum rMATS-turbo-4.3.0-gfbf-2023a.eb --force
== Temporary log file in case of crash /tmp/eb-n44b46ww/easybuild-t8q3emaw.log
== found valid index for /home/software/venvs/eb-5.1.0-py311/easybuild/easyconfigs, so using it...
== injecting sha256 checksums in /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0-gfbf-2023a.eb
== fetching sources & patches for rMATS-turbo-4.3.0-gfbf-2023a.eb...
  >> sources:
  >> /apps/eb/el8/upstream/sources/r/rMATS-turbo/v4.3.0.tar.gz
  >> /apps/eb/el8/upstream/sources/r/rMATS-turbo/v4.3.0.tar.gz
  >> patches:
  >> /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0_bamtools_as_dependency.patch

WARNING: Found existing checksums in rMATS-turbo-4.3.0-gfbf-2023a.eb, overwriting them (due to use of --force)...

== backup of easyconfig file saved to /apps/eb/el8/upstream/local/rMATS-turbo-4.3.0-gfbf-2023a.eb.bak_20250619095802_821967
== injecting sha256 checksums for sources & patches in rMATS-turbo-4.3.0-gfbf-2023a.eb...
== * v4.3.0.tar.gz: 8825a16f3ea8186d833ead55df0899c54a3da72b440f9674bcf3a9245d971805
== * v4.3.0.tar.gz: 8825a16f3ea8186d833ead55df0899c54a3da72b440f9674bcf3a9245d971805
== * rMATS-turbo-4.3.0_bamtools_as_dependency.patch: a4c70e3d8ef9723fcb801d39a62c132f8f1903fb3a60dad330de895c12f5f7e7

== Temporary log file(s) /tmp/eb-n44b46ww/easybuild-t8q3emaw.log* have been removed.
== Temporary directory /tmp/eb-n44b46ww has been removed.

However, the old checksums are not in fact replaced.

For reference, here is the content of the original file:

easyblock = 'Bundle'

name = 'rMATS-turbo'
version = '4.2.0'

homepage = 'https://github.com/Xinglab/rmats-turbo'
description = """rMATS turbo is the C/Cython version of rMATS (refer to https://rnaseq-mats.sourceforge.io)."""

toolchain = {'name': 'gfbf', 'version': '2023a'}
toolchainopts = {'openmp': True}

builddependencies = [
    ('CMake', '3.26.3'),
]
dependencies = [
    ('Python', '3.11.3'),
    ('SciPy-bundle', '2023.07'),
    ('GSL', '2.7'),
    ('SAMtools', '1.18'),
    ('STAR', '2.7.11a'),
    ('BamTools', '2.5.2'),
]

local_ldflags = " -lm -lgsl -lgslcblas $LIBLAPACK"
local_buildopts = '  CC="$CC" CXX="$CXX" FC="$FC" LDFLAGS="%s"' % local_ldflags

default_component_specs = {
    'sources': ['v%(version)s.tar.gz'],
    'source_urls': ['https://github.com/Xinglab/%(name)s/archive/refs/tags/'],
    'checksums': ['80fd32ffa00190b2eb3fcefcd4efb0d466a808c5e80bc91419a71bc033cdbd72'],
}

components = [
    (name, version, {
        'easyblock': 'MakeCp',
        'start_dir': 'rmats-turbo-%(version)s/rMATS_C',
        'buildopts': "%s" % local_buildopts,
        'files_to_copy': [(['rMATSexe', '../rmats.py', '../rMATS_C', '../rMATS_R', '../rMATS_P'], 'bin')]
    }),
    ('rmats-turbo-python', version, {
        'easyblock': 'PythonPackage',
        'patches': ['rMATS-turbo-%(version)s_bamtools_as_dependency.patch'],
        'checksums': [
            '80fd32ffa00190b2eb3fcefcd4efb0d466a808c5e80bc91419a71bc033cdbd72',
            'a4c70e3d8ef9723fcb801d39a62c132f8f1903fb3a60dad330de895c12f5f7e7',
        ],
        'start_dir': 'rmats-turbo-%(version)s/rMATS_pipeline',
        'options': {'modulename': 'rmatspipeline'},
    }),
]

postinstallcmds = ["chmod a+x %(installdir)s/bin/rmats.py"]

sanity_check_commands = [
    'rmats.py --version',
]

sanity_check_paths = {
    'files': ['bin/rMATSexe', 'bin/rmats.py'],
    'dirs': [],
}

moduleclass = 'bio'

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions