diff --git a/easybuild/easyconfigs/l/librosa/librosa-0.10.2.post1-foss-2024a.eb b/easybuild/easyconfigs/l/librosa/librosa-0.10.2.post1-foss-2024a.eb new file mode 100644 index 000000000000..75215dfe1de0 --- /dev/null +++ b/easybuild/easyconfigs/l/librosa/librosa-0.10.2.post1-foss-2024a.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonBundle' + +name = 'librosa' +version = '0.10.2.post1' + +homepage = 'https://librosa.org/' +description = """Audio and music processing in Python""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('matplotlib', '3.9.2'), + ('poetry', '1.8.3'), # build for soxr + ('scikit-build-core', '0.10.6'), + ('nanobind', '2.5.0'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), # to get joblib + ('SciPy-bundle', '2024.05'), + ('scikit-learn', '1.5.2'), + ('FFmpeg', '7.0.2'), + ('numba', '0.60.0'), + ('libsndfile', '1.2.2'), +] + +exts_list = [ + ('soxr', '0.5.0.post1', { + 'patches': ['%(name)s-%(version)s.patch'], + 'checksums': [ + {'soxr-0.5.0.post1.tar.gz': '7092b9f3e8a416044e1fa138c8172520757179763b85dc53aa9504f4813cff73'}, + {'soxr-0.5.0.post1.patch': '5ca9316d8524fcb1e81f4bfb0bfcfb5806050e936e33b6edef11ad0eed0e789c'}, + ], + }), + ('audioread', '3.0.1', { + 'checksums': ['ac5460a5498c48bdf2e8e767402583a4dcd13f4414d286f42ce4379e8b35066d'], + }), + ('soundfile', '0.13.1', { + 'checksums': ['b2c68dab1e30297317080a5b43df57e302584c49e2942defdde0acccc53f0e5b'], + }), + ('lazy_loader', '0.4', { + 'checksums': ['47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1'], + }), + ('resampy', '0.4.3', { + 'checksums': ['a0d1c28398f0e55994b739650afef4e3974115edbe96cd4bb81968425e916e47'], + }), + (name, version, { + 'checksums': ['cd99f16717cbcd1e0983e37308d1db46a6f7dfc2e396e5a9e61e6821e44bd2e7'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/librosa/soxr-0.5.0.post1.patch b/easybuild/easyconfigs/l/librosa/soxr-0.5.0.post1.patch new file mode 100644 index 000000000000..43ce66032899 --- /dev/null +++ b/easybuild/easyconfigs/l/librosa/soxr-0.5.0.post1.patch @@ -0,0 +1,20 @@ +We need to patch the CMakeList file in order to have nanobind found +see here: +https://nanobind.readthedocs.io/en/latest/building.html#finding-nanobind +Author: J. Sassmannshausen (Imperial College London/UK) +diff --git a/soxr-0.5.0.post1.orig/CMakeLists.txt b/soxr-0.5.0.post1/CMakeLists.txt +index eb701aa..f40df39 100644 +--- a/soxr-0.5.0.post1.orig/CMakeLists.txt ++++ b/soxr-0.5.0.post1/CMakeLists.txt +@@ -32,6 +32,11 @@ find_package(Python 3.9 + REQUIRED COMPONENTS Interpreter Development.Module + OPTIONAL_COMPONENTS Development.SABIModule) + ++# Detect the installed nanobind package and import it into CMake ++# The normal find_package command does not seem to work ++execute_process( ++ COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir ++ OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT) + find_package(nanobind CONFIG REQUIRED) + + if (USE_SYSTEM_LIBSOXR) diff --git a/easybuild/easyconfigs/n/nanobind/nanobind-2.5.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/nanobind/nanobind-2.5.0-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..4fd712db0f0b --- /dev/null +++ b/easybuild/easyconfigs/n/nanobind/nanobind-2.5.0-GCCcore-13.3.0.eb @@ -0,0 +1,38 @@ +# Template from PR#21984 +# The whl is used as the source code does not build with the current combination of +# modules +# Author: J Sassmannshausen (Imperial College London/UK) + +easyblock = 'PythonBundle' + +name = 'nanobind' +version = '2.5.0' + +homepage = 'https://github.com/wjakob/nanobind' +description = """ +Nanobind is a small binding library that exposes C++ types in Python and vice +versa. It is reminiscent of Boost.Python and pybind11 and uses near-identical +syntax. In contrast to these existing tools, nanobind is more efficient: +bindings compile in a shorter amount of time, produce smaller binaries, and +have better runtime performance. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('scikit-build-core', '0.10.6'), +] + +exts_list = [ + (name, version, { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['e1e5c816e5d10f0b252d82ba7f769f0f6679f5e043cf406aec3d9e184bf2a60d'], + }), +] + +moduleclass = 'lang'