From 9d1c0667eabf3296f2aa416539ac27e075b771b3 Mon Sep 17 00:00:00 2001 From: sassy Date: Thu, 16 Mar 2023 16:19:01 +0000 Subject: [PATCH 1/4] adding easyconfigs: PyTables-3.8.0-foss-2021b.eb and patches: PyTables-3.8.0-fix-libs.patch, py-blosc2-2.0.0-numpylib.patch --- .../p/PyTables/PyTables-3.8.0-fix-libs.patch | 19 +++++ .../p/PyTables/PyTables-3.8.0-foss-2021b.eb | 72 +++++++++++++++++++ .../p/PyTables/py-blosc2-2.0.0-numpylib.patch | 15 ++++ 3 files changed, 106 insertions(+) create mode 100644 easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-fix-libs.patch create mode 100644 easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb create mode 100644 easybuild/easyconfigs/p/PyTables/py-blosc2-2.0.0-numpylib.patch diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-fix-libs.patch b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-fix-libs.patch new file mode 100644 index 000000000000..323c993a5f98 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-fix-libs.patch @@ -0,0 +1,19 @@ +# pyTables expects that LIBS is a list of library names and will add +# a -l by itself. +# original patch by ward.poelmans@ugent.be, ported to PyTables 3.5.2 by Kenneth Hoste (HPC-UGent) +# updated to 3.7.0 by J. Sassmannshausen (Imperial College London/UK) +diff --git a/PyTables-3.7.0.orig/setup.py b/PyTables-3.7.0/setup.py +index ab8f8e3..5804ca3 100755 +--- a/PyTables-3.7.0.orig/setup.py ++++ b/PyTables-3.7.0/setup.py +@@ -526,6 +526,10 @@ if __name__ == "__main__": + # is not a good idea. + CFLAGS = os.environ.get("CFLAGS", "").split() + LIBS = os.environ.get("LIBS", "").split() ++ for idx, lib in enumerate(LIBS): ++ if lib.startswith("-l"): ++ LIBS[idx] = lib.replace("-l", "") ++ + CONDA_PREFIX = os.environ.get("CONDA_PREFIX", "") + # We start using pkg-config since some distributions are putting HDF5 + # (and possibly other libraries) in exotic locations. See issue #442. diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb new file mode 100644 index 000000000000..598f229339e4 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb @@ -0,0 +1,72 @@ +# J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'PythonBundle' + +name = 'PyTables' +version = '3.8.0' + +homepage = 'https://github.com/PyTables/PyTables' +description = """PyTables is a package for managing hierarchical datasets +and designed to efficiently cope with extremely large amounts of data.""" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('CMake', '3.22.1'), + ('Ninja', '1.10.2'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('Python', '3.9.6'), + ('h5py', '3.6.0'), + ('scikit-build', '0.11.1'), + ('SciPy-bundle', '2021.10'), + ('HDF5', '1.12.1'), + ('LZO', '2.10'), + ('Blosc', '1.21.1'), + ('py-cpuinfo', '9.0.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +exts_list = [ + ('markdown-it-py', '2.2.0', { + 'modulename': 'markdown_it', + 'checksums': ['7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1'], + }), + ('mdurl', '0.1.2', { + 'checksums': ['bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba'], + }), + ('Pygments', '2.14.0', { + 'checksums': ['b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297'], + }), + ('ndindex', '1.6', { + 'checksums': ['752e5a05c39883824316fdd7f7b650f6860eb71cecb9f15d811be2d879bebf02'], + }), + ('rich', '13.3.2', { + 'checksums': ['91954fe80cfb7985727a467ca98a7618e5dd15178cc2da10f553b36a93859001'], + }), + ('blosc2', '2.0.0', { + 'patches': ['py-%(name)s-%(version)s-numpylib.patch'], + 'checksums': [ + {'blosc2-2.0.0.tar.gz': 'f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1'}, + {'py-blosc2-2.0.0-numpylib.patch': '13b90b7eb72fea74f6eb660b52c48177b4db39d10b5090d7086c5cdef30b057e'}, + ], + }), + (name, version, { + 'modulename': 'tables', + 'patches': ['%(name)s-%(version)s-fix-libs.patch'], + 'source_urls': ['https://github.com/PyTables/PyTables/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': [ + {'v3.8.0.tar.gz': '652b56b3d355797af4337a4493acfa4c4de4a60e7c6663cc6ce44d8ee477e920'}, + {'PyTables-3.8.0-fix-libs.patch': '022c26960b8401f3693974f57be49832b72ee1f3a0a92f8e0dd9281c7c0e2c8c'}, + ], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyTables/py-blosc2-2.0.0-numpylib.patch b/easybuild/easyconfigs/p/PyTables/py-blosc2-2.0.0-numpylib.patch new file mode 100644 index 000000000000..d163c6eaba1f --- /dev/null +++ b/easybuild/easyconfigs/p/PyTables/py-blosc2-2.0.0-numpylib.patch @@ -0,0 +1,15 @@ +removes the not-set include-directory for NumPy +Author: J. Sassmannshausen (Imperial College London/UK) +diff --git a/blosc2-2.0.0.orig/blosc2/CMakeLists.txt b/blosc2-2.0.0/blosc2/CMakeLists.txt +index 012bb1e..c4aabd3 100644 +--- a/blosc2-2.0.0.orig/blosc2/CMakeLists.txt ++++ b/blosc2-2.0.0/blosc2/CMakeLists.txt +@@ -11,8 +11,6 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(BLOSC_INSTALL ON) + add_subdirectory(c-blosc2) + include_directories("${CMAKE_CURRENT_SOURCE_DIR}/c-blosc2/include") +-include_directories("${Python_NumPy_INCLUDE_DIRS}") +- + + add_cython_target(blosc2_ext blosc2_ext.pyx) + add_library(blosc2_ext MODULE ${blosc2_ext}) From 5328a7757999bae75d4e6beb225cb619210c10ad Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 11 Apr 2023 21:06:20 +0200 Subject: [PATCH 2/4] remove download_dep_fail which should not be set when using `PythonBundle` --- easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb index 598f229339e4..4f08bdd94fd2 100644 --- a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb @@ -30,7 +30,6 @@ dependencies = [ ] use_pip = True -download_dep_fail = True sanity_pip_check = True exts_list = [ From 2346663d20ec9562cd0a378bb07e2337ed2258bc Mon Sep 17 00:00:00 2001 From: sassy Date: Mon, 29 Jan 2024 17:03:52 +0000 Subject: [PATCH 3/4] Updated to be in line with PR #17143 --- .../p/PyTables/PyTables-3.8.0-foss-2021b.eb | 32 +++++++------------ 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb index 4f08bdd94fd2..4bb292de766f 100644 --- a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb @@ -6,8 +6,13 @@ name = 'PyTables' version = '3.8.0' homepage = 'https://github.com/PyTables/PyTables' -description = """PyTables is a package for managing hierarchical datasets -and designed to efficiently cope with extremely large amounts of data.""" +description = """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope + with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the + NumPy package. It features an object-oriented interface that, combined with C extensions for the performance-critical + parts of the code (generated using Cython), makes it a fast, yet extremely easy to use tool for interactively browsing, + processing and searching very large amounts of data. One important feature of PyTables is that it optimizes memory and + disk resources so that data takes much less space (specially if on-flight compression is used) than other solutions + such as relational or object oriented databases.""" toolchain = {'name': 'foss', 'version': '2021b'} toolchainopts = {'pic': True} @@ -16,39 +21,24 @@ builddependencies = [ ('CMake', '3.22.1'), ('Ninja', '1.10.2'), ('pkgconf', '1.8.0'), + ('scikit-build', '0.11.1'), ] dependencies = [ ('Python', '3.9.6'), - ('h5py', '3.6.0'), - ('scikit-build', '0.11.1'), ('SciPy-bundle', '2021.10'), ('HDF5', '1.12.1'), ('LZO', '2.10'), ('Blosc', '1.21.1'), + ('Blosc2', '2.4.3'), ('py-cpuinfo', '9.0.0'), ] use_pip = True +download_dep_fail = True sanity_pip_check = True exts_list = [ - ('markdown-it-py', '2.2.0', { - 'modulename': 'markdown_it', - 'checksums': ['7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1'], - }), - ('mdurl', '0.1.2', { - 'checksums': ['bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba'], - }), - ('Pygments', '2.14.0', { - 'checksums': ['b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297'], - }), - ('ndindex', '1.6', { - 'checksums': ['752e5a05c39883824316fdd7f7b650f6860eb71cecb9f15d811be2d879bebf02'], - }), - ('rich', '13.3.2', { - 'checksums': ['91954fe80cfb7985727a467ca98a7618e5dd15178cc2da10f553b36a93859001'], - }), ('blosc2', '2.0.0', { 'patches': ['py-%(name)s-%(version)s-numpylib.patch'], 'checksums': [ @@ -68,4 +58,4 @@ exts_list = [ }), ] -moduleclass = 'lib' +moduleclass = 'data' From 9627e1d4f653f32a982acfdd2566010c17028026 Mon Sep 17 00:00:00 2001 From: sassy Date: Mon, 29 Jan 2024 17:06:58 +0000 Subject: [PATCH 4/4] download_dep_fail removed --- easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb index 4bb292de766f..b4aecfe0aa12 100644 --- a/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb +++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2021b.eb @@ -35,7 +35,6 @@ dependencies = [ ] use_pip = True -download_dep_fail = True sanity_pip_check = True exts_list = [