From ef630973cdc3e742723f8ddb84e4f4c0e72ff8e0 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 14 Jun 2024 20:10:43 +0200 Subject: [PATCH 1/2] {lang}[gfbf/2024.05] SciPy-bundle v2024.05, meson-python v0.16.0, hypothesis v6.103.1 --- .../hypothesis-6.103.1-GCCcore-13.3.0.eb | 29 ++++++ .../meson-python-0.16.0-GCCcore-13.3.0.eb | 37 ++++++++ .../SciPy-bundle-2024.05-gfbf-2024.05.eb | 95 +++++++++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb diff --git a/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..e9bb1d78543 --- /dev/null +++ b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'hypothesis' +version = '6.103.1' + +homepage = "https://github.com/HypothesisWorks/hypothesis" +description = """Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized + by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets + you find more bugs in your code with less work.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['d299d5c21d6408eab3be670c94c974f3acf0b511c61fe81804b09091e393ee1f'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), # required for attrs, sortedcontainers +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..1724208584f --- /dev/null +++ b/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'meson-python' +version = '0.16.0' + +homepage = 'https://github.com/mesonbuild/meson-python' +description = "Python build backend (PEP 517) for Meson projects" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), # provides 'packaging' + ('Meson', '1.4.0'), +] + +use_pip = True + +exts_list = [ + ('pyproject-metadata', '0.8.0', { + 'sources': ['pyproject_metadata-%(version)s.tar.gz'], + 'checksums': ['376d5a00764ac29440a54579f88e66b7d9cb7e629d35c35a1c7248bfebc9b455'], + }), + (name, version, { + 'modulename': 'mesonpy', + 'sources': ['meson_python-%(version)s.tar.gz'], + 'checksums': ['9068c17e36c89d6c7ff709fffb2a8a9925e8cd0b02629728e5ceaf2ec505cb5f'], + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb new file mode 100644 index 00000000000..f5073cd91a7 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb @@ -0,0 +1,95 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2024.05' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'gfbf', 'version': '2024.05'} +toolchainopts = {'pic': True, 'lowopt': True} + +builddependencies = [ + ('hypothesis', '6.103.1'), + ('UnZip', '6.0'), + # scipy >= 1.9.0 uses Meson/Ninja + ('Meson', '1.4.0'), + ('meson-python', '0.16.0'), + ('Ninja', '1.12.1'), + ('pkgconf', '2.2.0'), # required by scipy +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), + ('pybind11', '2.12.0'), # required by scipy +] + +use_pip = True + +# order is important! +exts_list = [ + ('numpy', '1.26.4', { + 'patches': [ + 'numpy-1.22.3_disable-broken-override-test.patch', + ], + 'checksums': [ + {'numpy-1.26.4.tar.gz': '2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010'}, + {'numpy-1.22.3_disable-broken-override-test.patch': + '9c589bb073b28b25ff45eb3c63c57966aa508dd8b318d0b885b6295271e4983c'}, + ], + }), + ('ply', '3.11', { + 'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'], + }), + ('gast', '0.5.4', { + 'checksums': ['9c270fe5f4b130969b54174de7db4e764b09b4f7f67ccfc32480e29f78348d97'], + }), + ('beniget', '0.4.1', { + 'checksums': ['75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c'], + }), + ('pythran', '0.16.1', { + 'checksums': ['861748c0f9c7d422b32724b114b3817d818ed4eab86c09781aa0a3f7ceabb7f9'], + }), + ('versioneer', '0.29', { + 'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'], + }), + ('scipy', '1.13.1', { + 'enable_slow_tests': True, + 'ignore_test_result': False, + 'patches': [ + 'scipy-1.11.1_disable-tests.patch', + 'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch', + ], + 'checksums': [ + {'scipy-1.13.1.tar.gz': '095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c'}, + {'scipy-1.11.1_disable-tests.patch': '906bfb03397d94882ccdc1b93bc2c8e854e0e060c2d107c83042992394e6a4af'}, + {'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch': + '918c8e6fa8215d459126f267764c961bde729ea4a116c7f6287cddfdc58ffcea'}, + ], + }), + ('numexpr', '2.10.0', { + 'checksums': ['c89e930752639df040539160326d8f99a84159bbea41943ab8e960591edaaef0'], + }), + ('Bottleneck', '1.3.8', { + 'checksums': ['6780d896969ba7f53c8995ba90c87c548beb3db435dc90c60b9a10ed1ab4d868'], + }), + ('tzdata', '2024.1', { + 'checksums': ['2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd'], + }), + ('pandas', '2.2.2', { + 'preinstallopts': "export PANDAS_CI=0 && ", + 'checksums': ['9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54'], + }), + ('mpmath', '1.3.0', { + 'checksums': ['7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f'], + }), + ('deap', '1.4.1', { + 'modulename': 'deap.base', + 'checksums': ['cc01de9892dfa7d1bc9803dab28892fead177f0182c81db47360a240ead778ff'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lang' From cadea7071e3c96d53138fca22fba74e2696c693b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 14 Jun 2024 20:52:15 +0200 Subject: [PATCH 2/2] add patch for numexpr 2.10.0 to fix build on top of numpy 1.x --- .../SciPy-bundle-2024.05-gfbf-2024.05.eb | 10 ++++++---- .../numexpr-2.10.0_fix-numpy-1.x.patch | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 easybuild/easyconfigs/s/SciPy-bundle/numexpr-2.10.0_fix-numpy-1.x.patch diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb index f5073cd91a7..c3f76125dce 100644 --- a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024.05.eb @@ -30,9 +30,7 @@ use_pip = True # order is important! exts_list = [ ('numpy', '1.26.4', { - 'patches': [ - 'numpy-1.22.3_disable-broken-override-test.patch', - ], + 'patches': ['numpy-1.22.3_disable-broken-override-test.patch'], 'checksums': [ {'numpy-1.26.4.tar.gz': '2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010'}, {'numpy-1.22.3_disable-broken-override-test.patch': @@ -69,7 +67,11 @@ exts_list = [ ], }), ('numexpr', '2.10.0', { - 'checksums': ['c89e930752639df040539160326d8f99a84159bbea41943ab8e960591edaaef0'], + 'patches': ['numexpr-2.10.0_fix-numpy-1.x.patch'], + 'checksums': [ + {'numexpr-2.10.0.tar.gz': 'c89e930752639df040539160326d8f99a84159bbea41943ab8e960591edaaef0'}, + {'numexpr-2.10.0_fix-numpy-1.x.patch': '8d70b2e95579e6f0adc07bc615144f7657b3b607f9210ec328b6622458ca726d'}, + ], }), ('Bottleneck', '1.3.8', { 'checksums': ['6780d896969ba7f53c8995ba90c87c548beb3db435dc90c60b9a10ed1ab4d868'], diff --git a/easybuild/easyconfigs/s/SciPy-bundle/numexpr-2.10.0_fix-numpy-1.x.patch b/easybuild/easyconfigs/s/SciPy-bundle/numexpr-2.10.0_fix-numpy-1.x.patch new file mode 100644 index 00000000000..dff9bd069c9 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/numexpr-2.10.0_fix-numpy-1.x.patch @@ -0,0 +1,18 @@ +fix for: error: PyDataType_SET_ELSIZE was not declared in this scope +see https://github.com/pydata/numexpr/pull/485 + +--- numexpr-2.10.0/numexpr/interpreter.cpp.orig 2024-06-14 21:47:27.999098607 +0200 ++++ numexpr-2.10.0/numexpr/interpreter.cpp 2024-06-14 21:49:53.403776961 +0200 +@@ -47,6 +47,12 @@ + #define AVAILABLE(Haystack, Haystack_Len, J, Needle_Len) \ + ((Haystack_Len) >= (J) + (Needle_Len)) + ++// To allow building with NumPy<2 locally define the new NumPy macros: ++#if NPY_ABI_VERSION < 0x02000000 ++ #define PyDataType_ELSIZE(descr) ((descr)->elsize) ++ #define PyDataType_SET_ELSIZE(descr, size) (descr)->elsize = size ++#endif ++ + #include "str-two-way.hpp" + + #ifdef DEBUG