Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{astro,lib}[foss/2023b] DP3-6.0, WSClean 3.4 and deps #19840

Merged
merged 26 commits into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
46 changes: 46 additions & 0 deletions easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
easyblock = 'CMakeMake'

name = 'AOFlagger'
version = '3.4.0'

homepage = 'https://aoflagger.readthedocs.io/'
description = """The AOFlagger is a tool that can find and remove radio-frequency interference (RFI)
in radio astronomical observations. It can make use of Lua scripts to make flagging strategies flexible,
and the tools are applicable to a wide set of telescopes."""

toolchain = {'name': 'foss', 'version': '2023b'}

sources = [
{
'source_urls': [
'https://gitlab.com/aroffringa/%(namelower)s/-/package_files/96704214/'
],
'filename': '%(namelower)s-v%(version)s.tar.bz2',
'download_filename': 'download'
},
]
checksums = ['9560b7381b68f37d842599f222a8aa2a5d3d3d501d1277471e1a0ba3d7b2aeba']

builddependencies = [
('CMake', '3.27.6'),
]
dependencies = [
('casacore', '3.5.0'),
('Boost', '1.83.0'),
('CFITSIO', '4.3.1'),
('GSL', '2.7'),
('HDF5', '1.14.3'),
('Python', '3.11.5'),
('Lua', '5.4.6'),
('libpng', '1.6.40'),
('libxml2', '2.11.5'),
]

sanity_check_paths = {
'files': ['include/%(namelower)s.h', 'bin/%(namelower)s'],
'dirs': ['bin'],
}

sanity_check_commands = [('%(namelower)s', '-v')]

moduleclass = 'lib'
24 changes: 24 additions & 0 deletions easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name = 'Armadillo'
version = '12.8.0'

homepage = 'https://arma.sourceforge.net/'
description = """Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards
a good balance between speed and ease of use. Integer, floating point and complex numbers are supported,
as well as a subset of trigonometric and statistics functions."""

toolchain = {'name': 'foss', 'version': '2023b'}

source_urls = ['https://sourceforge.net/projects/arma/files']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['a89bb6fece5ce9fdd1d01a4bc145cf7cc0b939c5777cca46de69c2f5e3412cf0']

builddependencies = [
('CMake', '3.27.6'),
]
dependencies = [
('Boost', '1.83.0'),
('arpack-ng', '3.9.0'),
]


moduleclass = 'numlib'
37 changes: 37 additions & 0 deletions easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Author: Robert Mijakovic <robert.mijakovic@lxp.lu>

easyblock = 'ConfigureMake'

name = 'arpack-ng'
version = '3.9.0'

homepage = 'https://github.com/opencollab/arpack-ng'
description = "ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems."

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'pic': True, 'usempi': True}

github_account = 'opencollab'

source_urls = [GITHUB_SOURCE]
sources = ['%(version)s.tar.gz']
checksums = ['24f2a2b259992d3c797d80f626878aa8e2ed5009d549dad57854bbcfb95e1ed0']

builddependencies = [
('Autotools', '20220317'),
('pkgconf', '2.0.3'),
]
dependencies = [
('Eigen', '3.4.0'),
]

preconfigopts = "sh bootstrap && "
configopts = '--enable-mpi --with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"'

sanity_check_paths = {
'files': ['lib64/libarpack.la', 'lib64/libarpack.%s' % SHLIB_EXT,
'lib64/libparpack.la', 'lib64/libparpack.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'numlib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
easyblock = 'EB_Boost'

name = 'Boost.Python'
version = '1.83.0'

homepage = 'https://boostorg.github.io/python'
description = """Boost.Python is a C++ library which enables seamless interoperability between C++
and the Python programming language."""

toolchain = {'name': 'GCC', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
sources = ['boost_1_83_0.tar.gz']
checksums = ['c0685b68dd44cc46574cce86c4e17c0f611b15e195be9848dfd0769a0a207628']

dependencies = [
('Boost', '1.83.0'),
('Python', '3.11.5'),
]

only_python_bindings = True

moduleclass = 'lib'
43 changes: 43 additions & 0 deletions easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.3.1-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
easyblock = 'ConfigureMake'

name = 'CFITSIO'
version = '4.3.1'

homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/'
description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in
FITS (Flexible Image Transport System) data format."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['%(name)s-3.48_install_test_data.patch']
checksums = [
{SOURCELOWER_TAR_GZ: '47a7c8ee05687be1e1d8eeeb94fb88f060fbf3cd8a4df52ccb88d5eb0f5062be'},
{'%(name)s-3.48_install_test_data.patch': 'dbf16f857f133468fc1e6a793c6e89fca66d54796593e03606f2722a2a980c0c'},
]

builddependencies = [
('binutils', '2.40'),
]
# curl for HTTPs support
dependencies = [
('cURL', '8.3.0'),
]

# make would create just static libcfitsio.a.
# Let's create dynamic lib and testprog too.
buildopts = "&& make shared && make testprog"


sanity_check_paths = {
'files': ['lib/libcfitsio.a', 'lib/libcfitsio.%s' % SHLIB_EXT],
'dirs': ['include'],
}

sanity_check_commands = ['cd %(installdir)s/share && testprog']

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
From 68e43f489abd3d4f1e2fe54a42695396703aa81a Mon Sep 17 00:00:00 2001
From: Chris Broekema <broekema-github@fuzzms.nl>
Date: Tue, 9 May 2023 12:43:34 +0200
Subject: [PATCH] add C-style header to fix GCC 13.1 compile error on uint16_t
not being a valid type (#1309)

---
tables/Dysco/bytepacker.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/tables/Dysco/bytepacker.h b/tables/Dysco/bytepacker.h
index d62754046..cb1193b41 100644
--- a/tables/Dysco/bytepacker.h
+++ b/tables/Dysco/bytepacker.h
@@ -2,6 +2,7 @@
#define DYSCO_BYTE_PACKER_H

#include <stdexcept>
+#include <cstdint>

namespace dyscostman {
62 changes: 62 additions & 0 deletions easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
easyblock = 'CMakeMake'

name = 'casacore'
version = '3.5.0'

homepage = 'https://github.com/casacore/casacore'
description = """A suite of C++ libraries for radio astronomy data processing.
The ephemerides data needs to be in DATA_DIR and the location must be specified at runtime.
Thus user's can update them.
"""

toolchain = {'name': 'foss', 'version': '2023b'}

source_urls = ['https://github.com/%(name)s/%(name)s/archive']
sources = ['v%(version)s.tar.gz']
patches = ['casacore-3.5.0-add-C-style-header-for-GCC-13.1.patch']
checksums = [
'63f1c8eff932b0fcbd38c598a5811e6e5397b72835b637d6f426105a183b3f91', # casacore-3.5.0.tar.gz
'7b35d21cd654a7a215d604310f5372319ad21b6261f4a7ae038912b97ef22983', # add-C-style-header-for-GCC-13.1.patch
]

builddependencies = [
('CMake', '3.27.6'),
('flex', '2.6.4'),
('Bison', '3.8.2'),
('wget', '1.21.4'),
]
dependencies = [
('CFITSIO', '4.3.1'),
('WCSLIB', '7.11'),
('HDF5', '1.14.3'),
('GSL', '2.7'),
('Boost.Python', '1.83.0'),
('SciPy-bundle', '2023.11'),
('ncurses', '6.4'),
]

configopts = '-DBUILD_PYTHON=NO -DBUILD_PYTHON3=YES -Wno-dev -DCXX11="ON" '
configopts += '-DDATA_DIR=%(installdir)s/data -DUSE_OPENMP=ON -DUSE_HDF5=ON '
configopts += '-DUSE_MPI=ON '

local_download_cmd = 'wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar '
local_download_cmd += '-O /tmp/WSRT_Measures.ztar '

# Install casacore data
postinstallcmds = [
local_download_cmd,
"tar xfvz /tmp/WSRT_Measures.ztar --one-top-level=%(installdir)s/data",
]

sanity_check_paths = {
'files': [
'lib/libcasa_casa.%s' % SHLIB_EXT,
'lib/libcasa_mirlib.%s' % SHLIB_EXT,
'lib/libcasa_ms.%s' % SHLIB_EXT,
],
'dirs': ['bin', 'include/%(name)s'],
}

sanity_check_commands = [('measuresdata', '')]

moduleclass = 'lib'
57 changes: 57 additions & 0 deletions easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
easyblock = 'CMakeMake'

name = 'DP3'
version = '6.0'

homepage = 'https://dp3.readthedocs.io/'
description = "DP3: streaming processing pipeline for radio interferometric data."

toolchain = {'name': 'foss', 'version': '2023b'}

sources = [
{
'filename': '%(name)s-v%(version)s.tar.gz',
# Repo uses git submodules, which are not included in the release tarballs.
# Thus, we let EasyBuild download directly from the git repository.
'git_config': {
'url': 'https://git.astron.nl/RD',
'repo_name': '%(name)s',
'tag': 'v%(version)s',
'clone_into': '%(name)s',
'recursive': True
}
},
]
patches = ['DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch']
checksums = [
None, # checksum for git clone source is non-deterministic
# DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch
'7f5069388846c9c715013d5a3a267a6d8e266520445a6427e63e9d52d3046c9d',
]

builddependencies = [
('CMake', '3.27.6'),
]
dependencies = [
('casacore', '3.5.0'),
('Boost', '1.83.0'),
('CFITSIO', '4.3.1'),
('WCSLIB', '7.11'),
('GSL', '2.7'),
('HDF5', '1.14.3'),
('Python', '3.11.5'),
('EveryBeam', '0.5.2'),
('Armadillo', '12.8.0'),
('AOFlagger', '3.4.0'),
('IDG', '1.2.0'),
]


sanity_check_paths = {
'files': ['include/include/%(namelower)s/base/%(name)s.h', 'bin/%(name)s'],
'dirs': ['bin'],
}

sanity_check_commands = [('%(name)s', '--version')]

moduleclass = 'astro'
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Fix for XSIMD build error on Neoverse V1
# See: https://github.com/xtensor-stack/xsimd/issues/1005 and https://github.com/xtensor-stack/xsimd/commit/1d8536b
# Mar 11th 2024 by T. Kok (SURF)
--- DP3.orig/external/aocommon/CMake/FetchXTensor.cmake 2024-03-11 11:20:32.024804259 +0100
+++ DP3/external/aocommon/CMake/FetchXTensor.cmake 2024-03-11 11:21:32.851493709 +0100
@@ -6,7 +6,7 @@
set(xtl_GIT_TAG b3d0091a77af52f1b479b5b768260be4873aa8a7)
endif()
if (NOT xsimd_GIT_TAG)
- set(xsimd_GIT_TAG 2f5eddf8912c7e2527f0c50895c7560b964d29af)
+ set(xsimd_GIT_TAG 1d8536b393171b899031f01b7c2d63858b05665c)
endif()
if (NOT xtensor_GIT_TAG)
set(xtensor_GIT_TAG 0.24.2)
@@ -65,3 +65,4 @@
endif()

endforeach()
+
49 changes: 49 additions & 0 deletions easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
easyblock = 'CMakeMake'

name = 'EveryBeam'
version = '0.5.2'

homepage = 'https://everybeam.readthedocs.io/'
description = """Library that provides the antenna response pattern for several instruments,
such as LOFAR (and LOBES), SKA (OSKAR), MWA, JVLA, etc."""

toolchain = {'name': 'foss', 'version': '2023b'}

sources = [
{
'filename': '%(name)s-v%(version)s.tar.gz',
# Repo uses git submodules, which are not included in the release tarballs.
# Thus, we let EasyBuild download directly from the git repository.
'git_config': {
'url': 'https://git.astron.nl/RD',
'repo_name': '%(name)s',
'tag': 'v%(version)s',
'clone_into': '%(name)s',
'recursive': True
}
},
]
checksums = [None]

builddependencies = [
('CMake', '3.27.6'),
('wget', '1.21.4'),
]
dependencies = [
('casacore', '3.5.0'),
('Boost', '1.83.0'),
('CFITSIO', '4.3.1'),
('WCSLIB', '7.11'),
('GSL', '2.7'),
('HDF5', '1.14.3'),
('Python', '3.11.5'),
('libxml2', '2.11.5'),
]


sanity_check_paths = {
'files': ['include/%(name)s/beamformer.h', 'lib/libeverybeam.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'lib'