Closed dmacguigan closed 5 months ago
@dmacguigan I don't recommend using --ignore-checksums
. You REALLY want to make sure what you're downloading and installing is safe. You can download the runner package and then get a checksum value for it using either the linux tool like sha256sum
or an online tool - there are a bunch. Put that checksum in the EB recipe and it should work for you. If not, we can try to build it.
@dsajdak I'm a bit confused by how to generate this checksum. There are no tagged releases for runner, but easybuild is expecting a checksum for runner-20191220.tar.gz
I downloaded a tarball for the latest commit using wget https://github.com/dfguan/runner/tarball/73a4d11
and generated a checksum with md5sum 73a4d11
. But I still get the checksum verification failed error with easybuild.
@dmacguigan it's a pain. Try downloading from the github page - make sure to select the commit you want, click on the Code button and then choose "download zip" like shown here:
You'll get a zip file with a super long name. Check the checksum for that and add it to your EB recipe and then change the name of the file in the EB recipe too. From runner-%(version)s.tar.gz to the file name you get when you download. Hopefully this works.
I downloaded a tarball for the latest commit using
wget https://github.com/dfguan/runner/tarball/73a4d11
and generated a checksum withmd5sum 73a4d11
. But I still get the checksum verification failed error with easybuild.
EasyBuild uses sha256 checksums (not md5). You also will need to adjust the easybuild recipe. For example, modify this section:
exts_list = [
('runner', '20191220', {
'sources': [{
'git_config': {
'url': 'https://github.com/dfguan/',
'repo_name': 'runner',
'commit': '73a4d11',
},
'filename': 'runner-%(version)s.tar.gz',
}],
'checksums': [None],
'preinstallopts': "sed -i 's/0.0.0/%(version)s/g' setup.py && "
}),
]
And change it to something like this:
exts_list = [
('runner', '20191220', {
'source_urls': ['https://github.com/dfguan/runner/archive/'],
'sources': [{'download_filename': '73a4d11.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['5f3478f39f1037e9138a06c6790839a9c88f96dbe1033083c890aa5f19d7b762'],
}),
]
Hi @aebruno,
I tried your suggestion, but I'm still getting the same error.
dmacguig@compile1 ~/custom_easyconfigs $ cat purge_dups-1.2.5-foss-2021b_mod.eb
easyblock = 'PythonBundle'
name = 'purge_dups'
version = '1.2.5'
homepage = 'https://github.com/dfguan/purge_dups'
description = "purge haplotigs and overlaps in an assembly based on read depth"
toolchain = {'name': 'foss', 'version': '2021b'}
dependencies = [
('Python', '3.9.6'),
('matplotlib', '3.4.3'),
('minimap2', '2.22'),
('zlib', '1.2.11'),
]
use_pip = True
default_easyblock = 'MakeCp'
components = [
(name, version, {
'source_urls': ['https://github.com/dfguan/purge_dups/archive/refs/tags/'],
'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['7879a8ecc26e5de1eaaf4b4633cb240ed2802d648068b193652477317a3e2645'],
'start_dir': 'purge_dups-%(version)s',
'prebuildopts': "cd src && ",
'buildopts': 'CC="$CC" CFLAGS="$CFLAGS"',
'files_to_copy': ['bin', 'scripts'],
}),
('KMC', '20190629', {
'source_urls': ['https://github.com/dfguan/KMC/archive/'],
'sources': [{'download_filename': 'c05a5f9.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['7251941f4b1913bfdd68759d9292b419d95fe7c63815056e15ecb097a12a0bc4'],
'prebuildopts': 'cd KMC-* && ',
'buildopts': 'CC="$CXX"',
'files_to_copy': [(['KMC-*/bin/*kmc*'], 'bin'), 'KMC-*/spectra.py'],
}),
]
exts_list = [
('runner', '20191220', {
'source_urls': ['https://github.com/dfguan/runner/archive/'],
'sources': [{'download_filename': '73a4d11.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['5f3478f39f1037e9138a06c6790839a9c88f96dbe1033083c890aa5f19d7b762'],
}),
]
sanity_check_paths = {
'files': ['bin/kmc', 'bin/purge_dups'],
'dirs': ['scripts'],
}
sanity_check_commands = [
"purge_dups -h 2>&1 | grep 'Program: purge_dups'",
"kmc --help",
"run_purge_dups.py -h",
"hist_plot.py -h",
]
sanity_pip_check = True
modextrapaths = {'PATH': 'scripts'}
moduleclass = 'bio'
dmacguig@compile1 ~/custom_easyconfigs $ eb ./purge_dups-1.2.5-foss-2021b_mod.eb --robot
== Temporary log file in case of crash /tmp/eb-xerwu4hv/easybuild-j39am3iz.log
== Running parse hook for purge_dups-1.2.5-foss-2021b_mod.eb...
== found valid index for /cvmfs/soft.ccr.buffalo.edu/versions/2023.01/easybuild/software/Core/easybuild/4.9.1/easybuild/easyconfigs, so using it...
== Running parse hook for foss-2021b.eb...
== Running parse hook for GCC-11.2.0.eb...
== Running parse hook for GCCcore-11.2.0.eb...
== Running parse hook for OpenMPI-4.1.1-GCC-11.2.0.eb...
== Added '--with-slurm --with-pmi=/opt/software/slurm --with-hwloc=external ' configure option for OpenMPI
== Running parse hook for GCC-11.2.0.eb...
== Running parse hook for GCC-11.2.0.eb...
== Running parse hook for GCCcore-11.2.0.eb...
== Running parse hook for pkg-config-0.29.2.eb...
== Running parse hook for pkg-config-0.29.2-GCCcore-11.2.0.eb...
== Running parse hook for GCCcore-11.2.0.eb...
== Running parse hook for Perl-5.34.0-GCCcore-11.2.0.eb...
== Set path to openssl in compat layer for Perl 5.34.0..
== Running parse hook for groff-1.22.4-GCCcore-11.2.0.eb...
== Running parse hook for zlib-1.2.11.eb...
== Running parse hook for zlib-1.2.11-GCCcore-11.2.0.eb...
== Running parse hook for expat-2.4.1-GCCcore-11.2.0.eb...
== Running parse hook for DB-18.1.40-GCCcore-11.2.0.eb...
== Running parse hook for OpenSSL-1.1.eb...
== Running parse hook for pkgconf-1.8.0.eb...
== Running parse hook for hwloc-2.5.0-GCCcore-11.2.0.eb...
== Running parse hook for libxml2-2.9.10-GCCcore-11.2.0.eb...
== Running parse hook for libevent-2.1.12.eb...
== Running parse hook for libevent-2.1.12-GCCcore-11.2.0.eb...
== Running parse hook for UCX-1.11.2-GCCcore-11.2.0.eb...
== Using custom configure option for UCX: --enable-optimizations --enable-cma --enable-mt --with-verbs --without-java --disable-doxygen-doc --with-sysroot=/cvmfs/soft.ccr.buffalo.edu/versions/2023.01/compat --with-rdmacm=/cvmfs/soft.ccr.buffalo.edu/versions/2023.01/compat/usr --with-verbs=/cvmfs/soft.ccr.buffalo.edu/versions/2023.01/compat/usr
== Running parse hook for libfabric-1.13.2-GCCcore-11.2.0.eb...
== Running parse hook for PMIx-4.1.0-GCCcore-11.2.0.eb...
== Using custom configure option for PMIx: --with-libevent=$EBROOTLIBEVENT --with-zlib=$EBROOTZLIB --with-hwloc=$EBROOTHWLOC --with-ofi=$EBROOTLIBFABRIC --enable-pmix-binaries --disable-man-pages --with-sysroot=/cvmfs/soft.ccr.buffalo.edu/versions/2023.01/compat
== Running parse hook for FlexiBLAS-3.0.4-GCC-11.2.0.eb...
== Running parse hook for CMake-3.21.1-GCCcore-11.2.0.eb...
== Running parse hook for cURL-7.78.0-GCCcore-11.2.0.eb...
== Running parse hook for Python-3.9.6-GCCcore-11.2.0.eb...
== Running parse hook for UnZip-6.0.eb...
== Running parse hook for UnZip-6.0-GCCcore-11.2.0.eb...
== Running parse hook for Rust-1.54.0-GCCcore-11.2.0.eb...
== Running parse hook for Python-3.9.6-GCCcore-11.2.0-bare.eb...
== Running parse hook for SQLite-3.36-GCCcore-11.2.0.eb...
== Running parse hook for Tcl-8.6.11-GCCcore-11.2.0.eb...
== Running parse hook for libffi-3.4.2-GCCcore-11.2.0.eb...
== Running parse hook for GMP-6.2.1-GCCcore-11.2.0.eb...
== Running parse hook for BLIS-0.8.1-GCC-11.2.0.eb...
== Running parse hook for OpenBLAS-0.3.18-GCC-11.2.0.eb...
== Added 'TARGET=SKYLAKEX NUM_THREADS=64' configure/build/install options for OpenBLAS
== Running parse hook for make-4.3-GCCcore-11.2.0.eb...
== Running parse hook for FFTW-3.3.10-gompi-2021b.eb...
== Running parse hook for gompi-2021b.eb...
== Running parse hook for gompi-2021b.eb...
== Running parse hook for ScaLAPACK-2.1.0-gompi-2021b-fb.eb...
== Running parse hook for gompi-2021b.eb...
== Running parse hook for OpenMPI-4.1.1-GCC-11.2.0.eb...
== Added '--with-slurm --with-pmi=/opt/software/slurm --with-hwloc=external ' configure option for OpenMPI
== Running parse hook for foss-2021b.eb...
== Running parse hook for foss-2021b.eb...
== Running parse hook for FlexiBLAS-3.0.4-GCC-11.2.0.eb...
== Running parse hook for FFTW-3.3.10-gompi-2021b.eb...
== Running parse hook for ScaLAPACK-2.1.0-gompi-2021b-fb.eb...
== Running parse hook for matplotlib-3.4.3-foss-2021b.eb...
== Running parse hook for cppy-1.1.0-GCCcore-11.2.0.eb...
== Running parse hook for SciPy-bundle-2021.10-foss-2021b.eb...
== Running parse hook for hypothesis-6.14.6-GCCcore-11.2.0.eb...
== Running parse hook for pybind11-2.7.1-GCCcore-11.2.0.eb...
== Running parse hook for Eigen-3.3.9-GCCcore-11.2.0.eb...
== Running parse hook for libpng-1.6.37-GCCcore-11.2.0.eb...
== Running parse hook for freetype-2.11.0-GCCcore-11.2.0.eb...
== Running parse hook for Brotli-1.0.9-GCCcore-11.2.0.eb...
== Running parse hook for Tkinter-3.9.6-GCCcore-11.2.0.eb...
== Running parse hook for Tk-8.6.11-GCCcore-11.2.0.eb...
== Running parse hook for X11-20210802-GCCcore-11.2.0.eb...
== Running parse hook for Bison-3.7.6.eb...
== Running parse hook for Bison-3.7.6-GCCcore-11.2.0.eb...
== Running parse hook for Meson-0.58.2-GCCcore-11.2.0.eb...
== Running parse hook for Ninja-1.10.2-GCCcore-11.2.0.eb...
== Running parse hook for Doxygen-1.9.1-GCCcore-11.2.0.eb...
== Running parse hook for libiconv-1.16-GCCcore-11.2.0.eb...
== Running parse hook for fontconfig-2.13.94-GCCcore-11.2.0.eb...
== Added '--with-add-fonts=/cvmfs/soft.ccr.buffalo.edu/versions/2023.01/compat/usr/share/fonts' configure option for fontconfig
== Running parse hook for xorg-macros-1.19.3-GCCcore-11.2.0.eb...
== Running parse hook for Pillow-8.3.2-GCCcore-11.2.0.eb...
== Running parse hook for libjpeg-turbo-2.0.6-GCCcore-11.2.0.eb...
== Running parse hook for NASM-2.15.05-GCCcore-11.2.0.eb...
== Running parse hook for LibTIFF-4.3.0-GCCcore-11.2.0.eb...
== Running parse hook for jbigkit-2.1-GCCcore-11.2.0.eb...
== Running parse hook for zstd-1.5.0-GCCcore-11.2.0.eb...
== Running parse hook for gzip-1.10-GCCcore-11.2.0.eb...
== Running parse hook for lz4-1.9.3-GCCcore-11.2.0.eb...
== Running parse hook for Qhull-2020.2-GCCcore-11.2.0.eb...
== Running parse hook for minimap2-2.22-GCCcore-11.2.0.eb...
== resolving dependencies ...
== processing EasyBuild easyconfig /user/dmacguig/custom_easyconfigs/purge_dups-1.2.5-foss-2021b_mod.eb
== Running parse hook...
== Running parse hook...
== building and installing avx512/MPI/gcc/11.2.0/openmpi/4.1.1/purge_dups/1.2.5...
>> installation prefix: /projects/academic/tkrabben/modules_KrabLab/easybuild/2023.01/software/avx512/MPI/gcc/11.2.0/openmpi/4.1.1/purge_dups/1.2.5
== fetching files...
>> sources:
>> /var/tmp/dmacguig/easybuild/sources/p/purge_dups/purge_dups-1.2.5.tar.gz [SHA256: 7879a8ecc26e5de1eaaf4b4633cb240ed2802d648068b193652477317a3e2645]
>> /var/tmp/dmacguig/easybuild/sources/p/purge_dups/KMC-20190629.tar.gz [SHA256: 7251941f4b1913bfdd68759d9292b419d95fe7c63815056e15ecb097a12a0bc4]
== ... (took < 1 sec)
== FAILED: Installation ended unsuccessfully (build directory: /var/tmp/dmacguig/easybuild/build/purge_dups/1.2.5/foss-2021b): build failed (first 300 chars): Checksum verification for extension source runner-20191220.tar.gz failed (took 0 secs)
== Results of the build can be found in the log file(s) /tmp/eb-xerwu4hv/easybuild-purge_dups-1.2.5-20240606.192529.ccIoX.log
Fetching files: 100% (3/3) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0:00:00 (runner-20191220.tar.gz)
ERROR: Build of /user/dmacguig/custom_easyconfigs/purge_dups-1.2.5-foss-2021b_mod.eb failed (err: 'build failed (first 300 chars): Checksum verification for extension source runner-20191220.tar.gz failed')
Forgot to mention, you also likely need to the keep the preinstallopts
:
exts_list = [
('runner', '20191220', {
'source_urls': ['https://github.com/dfguan/runner/archive/'],
'sources': [{'download_filename': '73a4d11.tar.gz', 'filename': SOURCE_TAR_GZ}],
'checksums': ['5f3478f39f1037e9138a06c6790839a9c88f96dbe1033083c890aa5f19d7b762'],
'preinstallopts': "sed -i 's/0.0.0/%(version)s/g' setup.py && ",
}),
]
@aebruno, same error message.
ERROR: Build of /user/dmacguig/custom_easyconfigs/purge_dups-1.2.5-foss-2021b_mod.eb failed (err: 'build failed (first 300 chars): Checksum verification for extension source runner-20191220.tar.gz failed')
This is working fine in my tests. Check that you're using the correct easybuild file? Try removing any cached sources in your temp directory: /var/tmp/dmacguig/easybuild/sources/
?
Here's the output I get:
== fetching files...
>> download succeeded: https://github.com/dfguan/purge_dups/archive/refs/tags/v1.2.5.tar.gz
>> download succeeded: https://github.com/dfguan/KMC/archive/c05a5f9.tar.gz
>> sources:
>> download succeeded: https://github.com/dfguan/runner/archive/73a4d11.tar.gz
@aebruno if it's working fine for you, can you just install the purge_dups module globally for all users? Rather than have me continue troubleshooting.
If you are willing to install the module, could you also bump purge_dups up to the latest version, 1.2.6?
@aebruno @dsajdak just wanted to follow up on this. Is purge_dups something you would be willing to install, since it seems like @aebruno has a working easybuild config?
@dmacguigan we can leave it on the list of software requests and look into it. I believe Andrew was just confirming that he could download the software, not that it installed for him. We have a very busy month leading up to our maintenance downtime so I can't say for sure we'll get this done before that, unless another staff member happens to have time to look into it.
@dmacguigan this should be all set. To use run: module load foss purge_dups
Great, thank you!
Hello,
I am attempting to build a purge_dups module. This software would be useful for several research groups in the Biology Dept.
There is an available easyconfig for a slightly outdated version of the software, but it does not work.
I have also tried building with the
--ignore-checksums
flag, but strangely I still get the same error.Would you be able to help install this software?
Thank you, Dan MacGuigan