From d4f0fddd213dbc61b84f67e9b438e67725524430 Mon Sep 17 00:00:00 2001 From: deniskristak Date: Fri, 18 Aug 2023 14:23:22 +0200 Subject: [PATCH 01/21] adding easyconfigs: CatBoost-1.2-gfbf-2023a.eb, conan-1.60.2-GCCcore-12.3.0.eb, plotly.py-5.16.0-GCCcore-12.3.0.eb and patches: tenacity-8.2.3-fix_version.patch --- .../c/CatBoost/CatBoost-1.2-gfbf-2023a.eb | 44 +++++++++++++ .../c/conan/conan-1.60.2-GCCcore-12.3.0.eb | 64 +++++++++++++++++++ .../plotly.py-5.16.0-GCCcore-12.3.0.eb | 37 +++++++++++ .../tenacity-8.2.3-fix_version.patch | 12 ++++ 4 files changed, 157 insertions(+) create mode 100644 easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb create mode 100644 easybuild/easyconfigs/c/conan/conan-1.60.2-GCCcore-12.3.0.eb create mode 100644 easybuild/easyconfigs/p/plotly.py/plotly.py-5.16.0-GCCcore-12.3.0.eb create mode 100644 easybuild/easyconfigs/p/plotly.py/tenacity-8.2.3-fix_version.patch diff --git a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb new file mode 100644 index 00000000000..2d2eb55b3d5 --- /dev/null +++ b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'CatBoost' +version = '1.2' + +homepage = 'https://catboost.ai' +description = """CatBoost is a high-performance open source library for gradient boosting on decision trees""" + +toolchain = {'name': 'gfbf', 'version': '2023a'} + +builddependencies = [ + ('CMake', '3.26.3'), +] + +dependencies = [ + ('Python', '3.11.3'), # k + ('Clang', '16.0.6'), # k + ('SciPy-bundle', '2023.07'), # k + ('matplotlib', '3.7.2'), # k + ('plotly.py', '5.16.0'), # k + ('graphviz-python', '0.20.1'), # k + ('Ninja', '1.11.1'), # k + ('conan', '1.60.2'), # k +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('setuptools', '67.7.2', { + 'checksums': ['f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990'], + }), + (name, version, { + 'patches': ['%(name)s-%(version)s_disable-widget.patch'], + 'source_urls': ['https://pypi.python.org/packages/source/c/catboost'], + 'sources': ['catboost-%(version)s.tar.gz'], + 'checksums': [ + {'catboost-1.2.tar.gz': '39e53403727ecfbb48156773ef3006b4e71cc35ab49cc9a0cf044b474c34be0c'}, + {'CatBoost-1.2_disable-widget.patch': '468be5b5e9eaf655d407a342b786bb419d4ceaeb9df5c753c256a8bd6d69f9df'}, + ], + }), +] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/c/conan/conan-1.60.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/conan/conan-1.60.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..3c8de0638ed --- /dev/null +++ b/easybuild/easyconfigs/c/conan/conan-1.60.2-GCCcore-12.3.0.eb @@ -0,0 +1,64 @@ +easyblock = 'PythonBundle' + +name = 'conan' +version = '1.60.2' # have to stick to an older version because catboost is not compatible with newer one + +homepage = 'https://conan.io' +description = "Decentralized, open-source (MIT), C/C++ package manager." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.3'), + ('PyYAML', '6.0'), + ('tqdm', '4.66.1'), + ('Python-bundle-PyPI', '2023.06'), +] + +use_pip = True + +exts_list = [ + ('bottle', '0.12.25', { + 'checksums': ['e1a9c94970ae6d710b3fb4526294dfeb86f2cb4a81eff3a4b98dc40fb0e5e021'], + }), + ('distro', '1.8.0', { + 'checksums': ['02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8'], + }), + ('fasteners', '0.18', { + 'checksums': ['cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953'], + }), + ('node-semver', '0.6.1', { + 'modulename': 'semver', + 'checksums': ['4016f7c1071b0493f18db69ea02d3763e98a633606d7c7beca811e53b5ac66b7'], + }), + ('patch-ng', '1.17.4', { + 'checksums': ['627abc5bd723c8b481e96849b9734b10065426224d4d22cd44137004ac0d4ace'], + }), + ('pluginbase', '1.0.1', { + 'checksums': ['ff6c33a98fce232e9c73841d787a643de574937069f0d18147028d70d7dee287'], + }), + ('PyJWT', '2.8.0', { + 'modulename': 'jwt', + 'checksums': ['57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de'], + }), + (name, version, { + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/conan-io/conan/archive/'], + 'checksums': ['63dc6e92fc7f1d77fe08488bd78cd8a20fdddf454e55e1244107d1aec974377c'], + }), +] + +sanity_check_paths = { + 'files': ['bin/conan'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["conan --help"] + +sanity_pip_check = True + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/p/plotly.py/plotly.py-5.16.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/plotly.py/plotly.py-5.16.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..1471f01011a --- /dev/null +++ b/easybuild/easyconfigs/p/plotly.py/plotly.py-5.16.0-GCCcore-12.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'plotly.py' +version = '5.16.0' + +homepage = 'https://plot.ly/python' +description = "An open-source, interactive graphing library for Python" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [('Python', '3.11.3')] + +use_pip = True + +exts_list = [ + ('tenacity', '8.2.3', { + 'patches': ['tenacity-8.2.3-fix_version.patch'], + 'checksums': [ + {'tenacity-8.2.3.tar.gz': '5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a'}, + {'tenacity-8.2.3-fix_version.patch': 'eb066e8f70d2dc075fca18e04dbc2a6b0721285815470c602a16c599002b63f7'}, + ], + }), + ('packaging', '23.1', { + 'checksums': ['a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f'], + }), + ('plotly', version, { + 'checksums': ['13dc052665dcb4d9eefd89847c0b144984e99aca5c8008f9885d2583b77d8b7d'], + }), +] + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/plotly.py/tenacity-8.2.3-fix_version.patch b/easybuild/easyconfigs/p/plotly.py/tenacity-8.2.3-fix_version.patch new file mode 100644 index 00000000000..0bf7c04f34c --- /dev/null +++ b/easybuild/easyconfigs/p/plotly.py/tenacity-8.2.3-fix_version.patch @@ -0,0 +1,12 @@ +Putting a manually typed version in setup.cfg, as it wouldnt resolve automatically. +Author: Denis Kristak (Inuits)diff -ruN tenacity-8.2.3_orig/setup.cfg tenacity-8.2.3/setup.cfg +--- tenacity-8.2.3_orig/setup.cfg 2023-08-14 15:22:48.000000000 +0200 ++++ tenacity-8.2.3/setup.cfg 2023-08-15 19:47:02.512360441 +0200 +@@ -1,6 +1,7 @@ + [metadata] + name = tenacity + license = Apache 2.0 ++version = 8.2.3 + url = https://github.com/jd/tenacity + summary = Retry code until it succeeds + long_description = Tenacity is a general-purpose retrying library to simplify the task of adding retry behavior to just about anything. From decb69697c252b2e132417a063f18f4496527c8f Mon Sep 17 00:00:00 2001 From: deniskristak <35582739+deniskristak@users.noreply.github.com> Date: Fri, 18 Aug 2023 14:25:56 +0200 Subject: [PATCH 02/21] Update CatBoost-1.2-gfbf-2023a.eb removing debug comments --- .../c/CatBoost/CatBoost-1.2-gfbf-2023a.eb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb index 2d2eb55b3d5..b9e7dae7c64 100644 --- a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb +++ b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb @@ -13,14 +13,14 @@ builddependencies = [ ] dependencies = [ - ('Python', '3.11.3'), # k - ('Clang', '16.0.6'), # k - ('SciPy-bundle', '2023.07'), # k - ('matplotlib', '3.7.2'), # k - ('plotly.py', '5.16.0'), # k - ('graphviz-python', '0.20.1'), # k - ('Ninja', '1.11.1'), # k - ('conan', '1.60.2'), # k + ('Python', '3.11.3'), + ('Clang', '16.0.6'), + ('SciPy-bundle', '2023.07'), + ('matplotlib', '3.7.2'), + ('plotly.py', '5.16.0'), + ('graphviz-python', '0.20.1'), + ('Ninja', '1.11.1'), + ('conan', '1.60.2'), ] use_pip = True From 53cd7ee52b70d890e33a73fd4556f8329a937be0 Mon Sep 17 00:00:00 2001 From: deniskristak <35582739+deniskristak@users.noreply.github.com> Date: Fri, 18 Aug 2023 15:02:29 +0200 Subject: [PATCH 03/21] Update CatBoost-1.2-gfbf-2023a.eb removed whitespace --- easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb index b9e7dae7c64..38b618b1a9d 100644 --- a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb +++ b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb @@ -14,7 +14,7 @@ builddependencies = [ dependencies = [ ('Python', '3.11.3'), - ('Clang', '16.0.6'), + ('Clang', '16.0.6'), ('SciPy-bundle', '2023.07'), ('matplotlib', '3.7.2'), ('plotly.py', '5.16.0'), From b05b616ab1b78bd939567e7b8a147384e91c395d Mon Sep 17 00:00:00 2001 From: deniskristak Date: Fri, 18 Aug 2023 15:04:59 +0200 Subject: [PATCH 04/21] adding a patch --- .../c/CatBoost/CatBoost-1.2_disable-widget.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 easybuild/easyconfigs/c/CatBoost/CatBoost-1.2_disable-widget.patch diff --git a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2_disable-widget.patch b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2_disable-widget.patch new file mode 100644 index 00000000000..0f60fb8bac5 --- /dev/null +++ b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2_disable-widget.patch @@ -0,0 +1,14 @@ +Disabling optional widget, as it requires `yarn` +Author: Denis Kristak (Inuits) +diff -ruN catboost-1.2_pypi_orig/setup.py catboost-1.2_pypi/setup.py +--- catboost-1.2_pypi_orig/setup.py 2023-08-08 13:41:49.501481901 +0200 ++++ catboost-1.2_pypi/setup.py 2023-08-08 13:43:39.744105439 +0200 +@@ -245,7 +245,7 @@ + + @staticmethod + def initialize_options(command): +- command.no_widget = False ++ command.no_widget = True + command.prebuilt_widget = False + + @staticmethod From 413df2c6134d04f9c07f495a875e62d6b38fb038 Mon Sep 17 00:00:00 2001 From: satishk Date: Tue, 22 Aug 2023 14:40:32 +0200 Subject: [PATCH 05/21] adding easyconfigs: OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb --- .../OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb new file mode 100644 index 00000000000..1173c7c1e12 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-iimpi-2023a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '7.1-1' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'iimpi', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['85f4dd8be1df31255e232852769ae5b82e87a5fb14be2f8eba1ae9de8ffe391a'] + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' From 7ad61a45adef7b25630012364fb4a19caf2ff3dd Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Tue, 29 Aug 2023 12:32:31 +0200 Subject: [PATCH 06/21] adding easyconfigs: tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb --- ...mpression-2.11.0-foss-2022a-CUDA-11.7.0.eb | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb diff --git a/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..6d41078bd96 --- /dev/null +++ b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,55 @@ +name = 'tensorflow-compression' +version = '2.11.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/tensorflow/compression' +description = "TensorFlow Compression (TFC) contains data compression tools for TensorFlow." + +toolchain = {'name': 'foss', 'version': '2022a'} + +# Make sure bazel doesn't download TensorFlow by itself. +local_tf_version = version +local_tf_dir = 'tensorflow-%s' % local_tf_version +local_tf_builddir = '%(builddir)s/' + local_tf_dir + +sources = [ + { + 'source_urls': ['https://github.com/tensorflow/compression/archive/'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': SOURCE_TAR_GZ, + }, + { + 'filename': 'v%s.tar.gz' % local_tf_version, + 'alt_location': 'TensorFlow/extensions', + }, +] + +patches = [ + ('compression_local-tensorflow-repo.sed', '.'), +] + +builddependencies = [ + ('Bazel', '5.1.1'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('TensorFlow', local_tf_version, versionsuffix), + ('tensorflow-probability', '0.19.0', versionsuffix), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +local_prebuildopts = "sed -i -f compression_local-tensorflow-repo.sed WORKSPACE && " +local_prebuildopts += "sed -i 's|EB_TF_REPOPATH|%s|' WORKSPACE && " % local_tf_builddir + +prebuildopts = local_prebuildopts + +sanity_check_commands = [ + 'python -m tensorflow_compression.all_tests', +] + +moduleclass = 'lib' From 806c68b841cbda42752f6b1a26c26a0420e32d7e Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Tue, 29 Aug 2023 16:10:52 +0200 Subject: [PATCH 07/21] tensorflow-compression: add missing sed script --- .../compression_local-tensorflow-repo.sed | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed diff --git a/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed b/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed new file mode 100644 index 00000000000..1116ca24ca9 --- /dev/null +++ b/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed @@ -0,0 +1,12 @@ +/^http_archive(/{ + :a;N;/\n)/!ba; + /org_tensorflow/{ + s/^/# /; + s/\n/\n# /g; + s|$|\ +local_repository(\ + name = "org_tensorflow",\ + path = "EB_TF_REPOPATH",\ +)|; + } +} From 623861a5aaf5e0b86f45d7faf117de67ec272461 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Wed, 30 Aug 2023 15:55:48 +0200 Subject: [PATCH 08/21] add missing checksums --- .../tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb index 6d41078bd96..488325cffed 100644 --- a/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb @@ -23,10 +23,14 @@ sources = [ 'alt_location': 'TensorFlow/extensions', }, ] - patches = [ ('compression_local-tensorflow-repo.sed', '.'), ] +checksums = [ + {'tensorflow-compression-2.11.0.tar.gz': '7f0127c3ff4243e41c5af59be5909a635562191f462053e2d86c234bf638be4f'}, + {'v2.11.0.tar.gz': '99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48'}, + {'compression_local-tensorflow-repo.sed': 'abb5c3b97f4e317bce9f22ed3eeea3b9715365818d8b50720d937e2d41d5c4e5'}, +] builddependencies = [ ('Bazel', '5.1.1'), From 94d17a446043e11bde66ed34f09f737e8c4d87e1 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Aug 2023 18:35:15 +0200 Subject: [PATCH 09/21] adding easyconfigs: GAPPadder-20170601-foss-2021b-Python-2.7.18.eb, Biopython-1.76-foss-2021b-Python-2.7.18.eb, KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb --- ...Biopython-1.76-foss-2021b-Python-2.7.18.eb | 43 +++++++++++++++++ ...adder-20170601-foss-2021b-Python-2.7.18.eb | 44 ++++++++++++++++++ .../KMC/KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb | 46 +++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2021b-Python-2.7.18.eb create mode 100644 easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb create mode 100644 easybuild/easyconfigs/k/KMC/KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..a669640f918 --- /dev/null +++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.76-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonPackage' + +name = 'Biopython' +version = '1.76' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.biopython.org' +description = """Biopython is a set of freely available tools for biological + computation written in Python by an international team of developers. It is + a distributed collaborative effort to develop Python libraries and + applications which address the needs of current and future work in + bioinformatics. """ + +toolchain = {'name': 'foss', 'version': '2021b'} + +source_urls = ['https://biopython.org/DIST'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3873cb98dad5e28d5e3f2215a012565345a398d3d2c4eebf7cd701757b828c72'] + +dependencies = [ + ('Python', '2.7.18'), + ('SciPy-bundle', '2021.10', versionsuffix), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +# Run only tests that don't require internet connection +runtest = 'python setup.py test --offline' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio', + 'lib/python%(pyshortver)s/site-packages/BioSQL'] +} + +# extra check to ensure numpy dependency is available +sanity_check_commands = ["python -c 'import Bio.MarkovModel'"] + +options = {'modulename': 'Bio'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb new file mode 100644 index 00000000000..f9d0453e602 --- /dev/null +++ b/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb @@ -0,0 +1,44 @@ +easyblock = 'MakeCp' + +name = 'GAPPadder' +version = '20170601' +local_commit = 'a359750' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/simoncchu/GAPPadder' +description = "GAPPadder is tool for closing gaps on draft genomes with short sequencing data" + +toolchain = {'name': 'foss', 'version': '2021b'} + +source_urls = ['https://github.com/simoncchu/GAPPadder/archive'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['d255e863cc2627116d7cb1d112283a7cf794d349de28f673daf32ce68d8bba90'] + +dependencies = [ + ('Python', '2.7.18'), + ('Biopython', '1.76', versionsuffix), + ('KMC', '3.2.1', versionsuffix), + ('Velvet', '1.2.10', '-mt-kmer_191'), + ('BWA', '0.7.17'), + ('SAMtools', '1.16.1'), + ('BamTools', '2.5.2'), +] + +# remove prebuilt binaries +prebuildopts = "rm TERefiner_1 TERefiner/TERefiner_1 ContigsMerger ContigsCompactor-*/ContigsMerger/ContigsMerger && " +prebuildopts += "cd TERefiner && " +prebuildopts += "make BAMTOOLS=$EBROOTBAMTOOLS/include/bamtools BAMTOOLS_LD=$EBROOTNBAMTOOLS/lib && cd .. && " +prebuildopts += "cd ContigsCompactor-v0.2.0/ContigsMerger && " + +files_to_copy = [ + (['TERefiner/TERefiner_1', 'ContigsCompactor-v0.2.0/ContigsMerger/ContigsMerger'], 'bin'), + '*.py', + 'configuration.json', +] + +sanity_check_paths = { + 'files': ['bin/TERefiner_1', 'bin/ContigsMerger', 'configuration.json', 'main.py', 'pick_contigs.py'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/k/KMC/KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/k/KMC/KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb new file mode 100644 index 00000000000..d69650ebbaa --- /dev/null +++ b/easybuild/easyconfigs/k/KMC/KMC-3.2.1-GCC-11.2.0-Python-2.7.18.eb @@ -0,0 +1,46 @@ +easyblock = 'MakeCp' + +name = 'KMC' +version = '3.2.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://sun.aei.polsl.pl/kmc' +description = "KMC is a disk-based programm for counting k-mers from (possibly gzipped) FASTQ/FASTA files." + +toolchain = {'name': 'GCC', 'version': '11.2.0'} + +source_urls = ['https://github.com/refresh-bio/KMC/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['7db333091a754508163a097c41720cf32a80abe160bef60f3fc82c8da1d67896'] + +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), + ('Python', '2.7.18'), +] + +# Makefile does static linking with libc.a, libpthread.a, libm.a +osdependencies = [('glibc-static', 'libc6-dev')] + +prebuildopts = "sed -i 's@[^ ]*/libz.a@${EBROOTZLIB}/lib/libz.a@g' Makefile && " +prebuildopts += "sed -i 's@[^ ]*/libbz2.a@${EBROOTBZIP2}/lib/libbz2.a@g' Makefile && " +prebuildopts += "sed -i 's/python3-config --extension-suffix/echo .so/g' Makefile && " +prebuildopts += "sed -i 's/python3/python/g' Makefile && " + +files_to_copy = ['bin'] + +sanity_check_paths = { + 'files': ['bin/kmc', 'bin/kmc_dump'], + 'dirs': [], +} + +sanity_check_commands = [ + "kmc", + "kmc_dump", + "python -c 'import py_kmc_api'", +] + +# Python bindings are also located in bin/ +modextrapaths = {'PYTHONPATH': ['bin']} + +moduleclass = 'bio' From 35ab1ab11f25874e72d45441ae143b52bb768c35 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 30 Aug 2023 18:55:58 +0200 Subject: [PATCH 10/21] stick to SAMtools 1.14 as dependency for GAPPadder --- .../g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb b/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb index f9d0453e602..1778ef1545b 100644 --- a/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb +++ b/easybuild/easyconfigs/g/GAPPadder/GAPPadder-20170601-foss-2021b-Python-2.7.18.eb @@ -20,7 +20,7 @@ dependencies = [ ('KMC', '3.2.1', versionsuffix), ('Velvet', '1.2.10', '-mt-kmer_191'), ('BWA', '0.7.17'), - ('SAMtools', '1.16.1'), + ('SAMtools', '1.14'), ('BamTools', '2.5.2'), ] From 5943e59326a8955289b660216a08559d3396a98a Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 16:45:27 +0200 Subject: [PATCH 11/21] adding easyconfigs: Perl-5.38.0-GCCcore-13.2.0.eb, Autoconf-2.71-GCCcore-13.2.0.eb, Automake-1.16.5-GCCcore-13.2.0.eb, Autotools-20220317-GCCcore-13.2.0.eb, libtool-2.4.7-GCCcore-13.2.0.eb --- .../Autoconf/Autoconf-2.71-GCCcore-13.2.0.eb | 48 +++++++++++ .../Automake-1.16.5-GCCcore-13.2.0.eb | 39 +++++++++ .../Autotools-20220317-GCCcore-13.2.0.eb | 24 ++++++ .../l/libtool/libtool-2.4.7-GCCcore-13.2.0.eb | 32 +++++++ .../p/Perl/Perl-5.38.0-GCCcore-13.2.0.eb | 86 +++++++++++++++++++ 5 files changed, 229 insertions(+) create mode 100644 easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/p/Perl/Perl-5.38.0-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..82a7f9766df --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.2.0.eb @@ -0,0 +1,48 @@ +easyblock = 'ConfigureMake' + +name = 'Autoconf' +version = '2.71' + +homepage = 'https://www.gnu.org/software/autoconf/' + +description = """ + Autoconf is an extensible package of M4 macros that produce shell scripts + to automatically configure software source code packages. These scripts can + adapt the packages to many kinds of UNIX-like systems without manual user + intervention. Autoconf creates a configuration script for a package from a + template file that lists the operating system features that the package can + use, in the form of M4 macro calls. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('M4', '1.4.19'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.38.0'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ["bin/%s" % x + for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +sanity_check_commands = [ + "autoconf --help", + "autom4te --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..371c50f375d --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'Automake' +version = '1.16.5' + +homepage = 'https://www.gnu.org/software/automake/automake.html' + +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Autoconf', '2.71'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.38.0'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ['bin/aclocal', 'bin/automake'], + 'dirs': [] +} + +sanity_check_commands = [ + "aclocal --help", + "automake --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..49a29016b9e --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20220317' # date of the most recent change + +homepage = 'https://autotools.io' + +description = """ + This bundle collect the standard GNU build tools: Autoconf, Automake + and libtool +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +dependencies = [ + ('Autoconf', '2.71'), # 20210128 + ('Automake', '1.16.5'), # 20211003 + ('libtool', '2.4.7'), # 20220317 +] + +# Pure bundle -- no need to specify 'binutils' used when building GCCcore +# toolchain as build dependency + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..31bed6f7eed --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.7' + +homepage = 'https://www.gnu.org/software/libtool' + +description = """ + GNU libtool is a generic library support script. Libtool hides the complexity + of using shared libraries behind a consistent, portable interface. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('M4', '1.4.19'), +] + +sanity_check_paths = { + 'files': ['bin/libtool', 'bin/libtoolize', 'lib/libltdl.%s' % SHLIB_EXT], + 'dirs': ['include/libltdl', 'share/libtool/loaders', 'share/man/man1'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.38.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.38.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..1620e4f9dfa --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.38.0-GCCcore-13.2.0.eb @@ -0,0 +1,86 @@ +name = 'Perl' +version = '5.38.0' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language + +Includes a small selection of extra CPAN packages for core functionality. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['213ef58089d2f2c972ea353517dc60ec3656f050dcc027666e118b508423e517'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), +] + +# !! order of extensions is important !! +# extensions updated on 2023-09-03 +# includes all dependencies for Autotools +exts_list = [ + ('threads', '2.21', { + 'source_tmpl': 'threads-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['28394c98a2bcae6f20ffb8a3d965a1c194b764c650169e2050ee38dbaa10f110'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Getopt::Long', '2.54', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['584ba3c99bb2d6b341375212f9b874613f706cfb01cee21b8a2676a98ab985fe'], + }), + ('File::Path', '2.18', { + 'source_tmpl': 'File-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN/'], + 'checksums': ['980f0a17edb353df46e9cd7b357f9f5929cde0f80c45fd7a06cf7e0e8bd6addd'], + }), + ('File::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('IO::File', '1.51', { + 'source_tmpl': 'IO-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR/'], + 'checksums': ['5493ea55998728cd2b7ecb8234c58fb5d5df27098d0f07addca22444d7616ce0'], + }), + ('Thread::Queue', '3.13', { + 'source_tmpl': 'Thread-Queue-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Exporter', '5.77', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['3892ee5c6ae6e482068d53b61e25cae4fc71ddc79cc47446e385df0a669bb8ed'], + }), + ('Text::ParseWords', '3.31', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB/'], + 'checksums': ['2ae555ba084d75b2b8feeeb8d1a00911276815ada86bccb1452236964d5a2fc7'], + }), + ('Data::Dumper', '2.183', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/'], + 'checksums': ['e42736890b7dae1b37818d9c5efa1f1fdc52dec04f446a33a4819bf1d4ab5ad3'], + }), +] + +moduleclass = 'lang' From 0e15e141e2f13d5e113e7bd92581c5467073cbe5 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 16:55:25 +0200 Subject: [PATCH 12/21] adding easyconfigs: XZ-5.4.4-GCCcore-13.2.0.eb, libxml2-2.11.5-GCCcore-13.2.0.eb, gettext-0.22.eb, ncurses-6.4-GCCcore-13.2.0.eb, gettext-0.22-GCCcore-13.2.0.eb --- .../g/gettext/gettext-0.22-GCCcore-13.2.0.eb | 37 +++++++++++++++ .../easyconfigs/g/gettext/gettext-0.22.eb | 39 +++++++++++++++ .../libxml2/libxml2-2.11.5-GCCcore-13.2.0.eb | 27 +++++++++++ .../n/ncurses/ncurses-6.4-GCCcore-13.2.0.eb | 47 +++++++++++++++++++ .../x/XZ/XZ-5.4.4-GCCcore-13.2.0.eb | 34 ++++++++++++++ 5 files changed, 184 insertions(+) create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.22-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/g/gettext/gettext-0.22.eb create mode 100644 easybuild/easyconfigs/l/libxml2/libxml2-2.11.5-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/n/ncurses/ncurses-6.4-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/x/XZ/XZ-5.4.4-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.22-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/gettext/gettext-0.22-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..2f4d3b3096a --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.22-GCCcore-13.2.0.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.22' + +homepage = 'https://www.gnu.org/software/gettext/' +description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['49f089be11b490170bbf09ed2f51e5f5177f55be4cc66504a5861820e0fb06ab'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('libxml2', '2.11.5'), + ('ncurses', '6.4'), +] + +configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2' + +sanity_check_paths = { + 'files': ['bin/gettext', 'lib/libasprintf.a', 'lib/libasprintf.%s' % SHLIB_EXT, + 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "gettext --help", + "msginit --help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.22.eb b/easybuild/easyconfigs/g/gettext/gettext-0.22.eb new file mode 100644 index 00000000000..4212074dac6 --- /dev/null +++ b/easybuild/easyconfigs/g/gettext/gettext-0.22.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'gettext' +version = '0.22' + +homepage = 'https://www.gnu.org/software/gettext/' +description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may +build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools +and documentation""" + +# This is a basic stripped down version of gettext without any +# dependencies on other packages used as initial builddep for XZ +# It is the first step in the cyclic dependency chain of +# XZ -> libxml2 -> gettext -> XZ + +toolchain = SYSTEM + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['49f089be11b490170bbf09ed2f51e5f5177f55be4cc66504a5861820e0fb06ab'] + +dependencies = [ + ('ncurses', '6.4'), +] + +configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2' + +sanity_check_paths = { + 'files': ['bin/gettext', 'lib/libasprintf.a', 'lib/libasprintf.%s' % SHLIB_EXT, + 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "gettext --help", + "msginit --help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.11.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.11.5-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..79cc8b0ae36 --- /dev/null +++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.11.5-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +name = 'libxml2' +version = '2.11.5' + +homepage = 'http://xmlsoft.org/' + +description = """ + Libxml2 is the XML C parser and toolchain developed for the Gnome project + (but usable outside of the Gnome platform). +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://download.gnome.org/sources/libxml2/%(version_major_minor)s/'] +sources = [SOURCE_TAR_XZ] +checksums = ['3727b078c360ec69fa869de14bd6f75d7ee8d36987b071e6928d4720a28df3a6'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('XZ', '5.4.4'), + ('zlib', '1.2.13'), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/n/ncurses/ncurses-6.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..0bda2c35075 --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-6.4-GCCcore-13.2.0.eb @@ -0,0 +1,47 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.4' + +homepage = 'https://www.gnu.org/software/ncurses/' +description = """ + The Ncurses (new curses) library is a free software emulation of curses in + System V Release 4.0, and more. It uses Terminfo format, supports pads and + color and multiple highlights and forms characters and function-key mapping, + and has all the other SYSV-curses enhancements over BSD Curses. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159'] + +builddependencies = [('binutils', '2.40')] + +local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms " +configopts = [ + # build ncurses: serial build in default paths with shared libraries + local_common_configopts, + # build ncursesw: serial with UTF-8 + local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/", +] + +# Symlink libtinfo to libncurses +# libncurses with this configopts has all the symbols from libtinfo, but some packages look for libtinfo specifically +postinstallcmds = ['cd %(installdir)s/lib && for l in libncurses{.,_,w}*; do ln -s "${l}" "${l/ncurses/tinfo}"; done'] + +_target_suffix = ['', 'w'] # '': ncurses, 'w': ncursesw +_lib_suffix = ['%s%s' % (x, y) for x in _target_suffix for y in ['.a', '_g.a', '.' + SHLIB_EXT]] +_lib_names = ['form', 'menu', 'ncurses', 'panel', 'tinfo'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config", + "reset", "tabs", "tic", "toe", "tput", "tset"]] + + ['lib/lib%s%s' % (x, y) for x in _lib_names for y in _lib_suffix] + + ['lib/libncurses++%s.a' % x for x in _target_suffix], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.4.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.4.4-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..f905a1885ab --- /dev/null +++ b/easybuild/easyconfigs/x/XZ/XZ-5.4.4-GCCcore-13.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'XZ' +version = '5.4.4' + +homepage = 'https://tukaani.org/xz/' +description = "xz: XZ utilities" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://tukaani.org/xz/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['0b6fcde1ac38e90433a2556f500c065950b9bcd2d602006efc334782bdfe6296'] + +builddependencies = [ + # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) + ('gettext', '0.22', '', SYSTEM), + ('binutils', '2.40'), +] + +# may become useful in non-x86 archs +# configopts = ' --disable-assembler ' + +sanity_check_paths = { + 'files': ['bin/lzmainfo', 'bin/unxz', 'bin/xz'], + 'dirs': [] +} + +sanity_check_commands = [ + "xz --help", + "unxz --help", +] + +moduleclass = 'tools' From 2d27ffb6399f1e93f11e0a46ceee62814ca38810 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 16:58:00 +0200 Subject: [PATCH 13/21] adding easyconfigs: libpciaccess-0.17-GCCcore-13.2.0.eb, xorg-macros-1.20.0-GCCcore-13.2.0.eb --- .../libpciaccess-0.17-GCCcore-13.2.0.eb | 26 ++++++++++++++++++ .../xorg-macros-1.20.0-GCCcore-13.2.0.eb | 27 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..17563d8e3b2 --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-13.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.17' + +homepage = 'https://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://www.x.org/releases/individual/lib/'] +sources = [SOURCE_TAR_GZ] +checksums = ['bf6985a77d2ecb00e2c79da3edfb26b909178ffca3f2e9d14ed0620259ab733b'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('xorg-macros', '1.20.0'), +] + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..14bbf928bbc --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-13.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.20.0' + +homepage = 'https://gitlab.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://gitlab.freedesktop.org/xorg/util/macros/-/archive/util-macros-%(version)s'] +sources = ['macros-util-macros-%(version)s.tar.gz'] +checksums = ['efd8eefab568981e47dd64d3e9b5ee2b7165a30d4feca105770f249f9b59979c'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' From fe16f5739eb89e91af883d22df7a51ac7aa14f4b Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 16:59:49 +0200 Subject: [PATCH 14/21] adding easyconfigs: pkgconf-2.0.3-GCCcore-13.2.0.eb --- .../p/pkgconf/pkgconf-2.0.3-GCCcore-13.2.0.eb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 easybuild/easyconfigs/p/pkgconf/pkgconf-2.0.3-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-2.0.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-2.0.3-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..a9a638fa1ef --- /dev/null +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-2.0.3-GCCcore-13.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'pkgconf' +version = '2.0.3' + +homepage = 'https://github.com/pkgconf/pkgconf' + +description = """pkgconf is a program which helps to configure compiler and linker flags for development libraries. + It is similar to pkg-config from freedesktop.org.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['a8f25f4b0c1ad48edc9b07ed46101aab4bcb305ba6ae811be49b7499b00eed49'] + +builddependencies = [('binutils', '2.40')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s pkgconf pkg-config"] + +sanity_check_paths = { + 'files': ['bin/pkg-config', 'bin/pkgconf'], + 'dirs': [], +} + +sanity_check_commands = [ + "pkg-config --help", + "pkgconf --help", +] + +moduleclass = 'devel' From 96dbb1bba757b07d6e2f48427f053b506cd11a21 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 17:03:51 +0200 Subject: [PATCH 15/21] adding easyconfigs: libevent-2.1.12-GCCcore-13.2.0.eb --- .../libevent-2.1.12-GCCcore-13.2.0.eb | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..db1de7fe681 --- /dev/null +++ b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.1.12' + +homepage = 'https://libevent.org/' + +description = """ + The libevent API provides a mechanism to execute a callback function when + a specific event occurs on a file descriptor or after a timeout has been + reached. Furthermore, libevent also support callbacks due to signals or + regular timeouts. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/release-%(version)s-stable/'] +sources = ['%(name)s-%(version)s-stable.tar.gz'] +checksums = ['92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/event_rpcgen.py', 'include/event.h', 'include/event2/event.h', + 'lib/libevent_core.%s' % SHLIB_EXT, 'lib/pkgconfig/libevent.pc'], + 'dirs': [], +} + +moduleclass = 'lib' From 01e078d112ef4a973d6d121f199ec6b6e255720b Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sun, 3 Sep 2023 17:05:58 +0200 Subject: [PATCH 16/21] adding easyconfigs: numactl-2.0.16-GCCcore-13.2.0.eb, libfabric-1.19.0-GCCcore-13.2.0.eb --- .../libfabric-1.19.0-GCCcore-13.2.0.eb | 62 +++++++++++++++++++ .../numactl/numactl-2.0.16-GCCcore-13.2.0.eb | 34 ++++++++++ 2 files changed, 96 insertions(+) create mode 100644 easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb create mode 100644 easybuild/easyconfigs/n/numactl/numactl-2.0.16-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..3a1dce0b2dc --- /dev/null +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb @@ -0,0 +1,62 @@ +easyblock = 'ConfigureMake' + +name = 'libfabric' +version = '1.19.0' + +homepage = 'https://ofiwg.github.io/libfabric/' +description = """ +Libfabric is a core component of OFI. It is the library that defines and exports +the user-space API of OFI, and is typically the only software that applications +deal with directly. It works in conjunction with provider libraries, which are +often integrated directly into libfabric. +""" + +# The psm3 provider (enabled by default) requires an AVX capable system to run +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s'] +sources = [SOURCE_TAR_BZ2] +patches = [ + '%(name)s-1.18.0_disable-psm3-avx-config.patch', +] +checksums = [ + {'libfabric-1.19.0.tar.bz2': 'f14c764be9103e80c46223bde66e530e5954cb28b3835b57c8e728479603ef9e'}, + {'libfabric-1.18.0_disable-psm3-avx-config.patch': + '79db0bfe759d65ef68301701e0842f1e8dcd4ace8bfc5bca8f7c8846501a67cb'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('numactl', '2.0.16'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +# Regenerate build files to pick up psm3-axv-config patch +preconfigopts = "./autogen.sh &&" + +# Disable deprecated "sockets" provider +configopts = "--disable-sockets " + +# Disable usNIC provider by default as this requires specific osdependencies +# If you want to enable this provider you need to uncomment the following line: +# osdependencies.append(('libnl3-devel', 'libnl3-dev')) +configopts += "--disable-usnic " + +buildopts = "V=1" + +sanity_check_paths = { + 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] + + ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]], + 'dirs': ['include/rdma', 'lib/pkgconfig', 'share'] +} + +sanity_check_commands = ['fi_info'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/numactl/numactl-2.0.16-GCCcore-13.2.0.eb b/easybuild/easyconfigs/n/numactl/numactl-2.0.16-GCCcore-13.2.0.eb new file mode 100644 index 00000000000..028a4a4c8a1 --- /dev/null +++ b/easybuild/easyconfigs/n/numactl/numactl-2.0.16-GCCcore-13.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'numactl' +version = '2.0.16' + +homepage = 'https://github.com/numactl/numactl' + +description = """ + The numactl program allows you to run your application program on specific + cpu's and memory nodes. It does this by supplying a NUMA memory policy to + the operating system before running your program. The libnuma library provides + convenient ways for you to add NUMA memory policies into your own program. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/numactl/numactl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['a35c3bdb3efab5c65927e0de5703227760b1101f5e27ab741d8f32b3d5f0a44c'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'], + 'dirs': ['share/man', 'include'] +} + +moduleclass = 'tools' From f50bd06f7b605e88d5cfb25b595d3f839fc648e4 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Sun, 3 Sep 2023 18:38:41 +0200 Subject: [PATCH 17/21] change conan to build dependency + remove setuptools extension in CatBoost easyconfig --- easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb index 38b618b1a9d..02aa893cd52 100644 --- a/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb +++ b/easybuild/easyconfigs/c/CatBoost/CatBoost-1.2-gfbf-2023a.eb @@ -10,6 +10,7 @@ toolchain = {'name': 'gfbf', 'version': '2023a'} builddependencies = [ ('CMake', '3.26.3'), + ('conan', '1.60.2'), ] dependencies = [ @@ -20,16 +21,12 @@ dependencies = [ ('plotly.py', '5.16.0'), ('graphviz-python', '0.20.1'), ('Ninja', '1.11.1'), - ('conan', '1.60.2'), ] use_pip = True sanity_pip_check = True exts_list = [ - ('setuptools', '67.7.2', { - 'checksums': ['f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990'], - }), (name, version, { 'patches': ['%(name)s-%(version)s_disable-widget.patch'], 'source_urls': ['https://pypi.python.org/packages/source/c/catboost'], From 250dd8a076a4afc1caba0168f66abb9a9da40768 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 4 Sep 2023 10:47:15 +0200 Subject: [PATCH 18/21] adding easyconfigs: CUDA-12.2.2.eb --- easybuild/easyconfigs/c/CUDA/CUDA-12.2.2.eb | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/c/CUDA/CUDA-12.2.2.eb diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.2.2.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.2.2.eb new file mode 100644 index 00000000000..da8873e6d0c --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.2.2.eb @@ -0,0 +1,24 @@ +name = 'CUDA' +version = '12.2.2' +local_nv_version = '535.104.05' + +homepage = 'https://developer.nvidia.com/cuda-toolkit' +description = """CUDA (formerly Compute Unified Device Architecture) is a parallel + computing platform and programming model created by NVIDIA and implemented by the + graphics processing units (GPUs) that they produce. CUDA gives developers access + to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.""" + +toolchain = SYSTEM + +source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/'] +sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version] +checksums = [{ + 'cuda_%%(version)s_%s_linux.run' % local_nv_version: + '2b39aae3e7618d9f59a3c8fa1f1bc61f29c0b0e0df75fb05076badb352952ef2', + 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version: + '18848278e7f2bd4b4481f5665633d7e3d46e9a562d175d5ff278218188b01342', + 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version: + '4113a15e6b27a02638c72edeb5f89de4c9ea312febba12fc4cefff2edc882268' +}] + +moduleclass = 'system' From ee068ea782d200417234c863cd8aacf6dc213560 Mon Sep 17 00:00:00 2001 From: Ake Sandgren Date: Mon, 4 Sep 2023 12:36:25 +0200 Subject: [PATCH 19/21] tensorflow-compression: add comment to the WORKSPACE sed file update checksum accordingly --- .../compression_local-tensorflow-repo.sed | 2 ++ .../tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed b/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed index 1116ca24ca9..f4900022dee 100644 --- a/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed +++ b/easybuild/easyconfigs/t/tensorflow-compression/compression_local-tensorflow-repo.sed @@ -1,3 +1,5 @@ +# Convert http repo for tensorflow to local repo +# Copied from jax/jaxlib_local-tensorflow-repo.sed /^http_archive(/{ :a;N;/\n)/!ba; /org_tensorflow/{ diff --git a/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb index 488325cffed..a25980ceef9 100644 --- a/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/t/tensorflow-compression/tensorflow-compression-2.11.0-foss-2022a-CUDA-11.7.0.eb @@ -29,7 +29,7 @@ patches = [ checksums = [ {'tensorflow-compression-2.11.0.tar.gz': '7f0127c3ff4243e41c5af59be5909a635562191f462053e2d86c234bf638be4f'}, {'v2.11.0.tar.gz': '99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48'}, - {'compression_local-tensorflow-repo.sed': 'abb5c3b97f4e317bce9f22ed3eeea3b9715365818d8b50720d937e2d41d5c4e5'}, + {'compression_local-tensorflow-repo.sed': '65d4d40953624148cd6395a6110eaf8239a9bcae25d1f4c89259f2c60cc4b6dc'}, ] builddependencies = [ From d36ca3d40a7dc04392ccbcfdc790de8e4424c1be Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Mon, 4 Sep 2023 14:51:48 +0200 Subject: [PATCH 20/21] adding easyconfigs: ccache-4.8.3.eb --- .../easyconfigs/c/ccache/ccache-4.8.3.eb | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 easybuild/easyconfigs/c/ccache/ccache-4.8.3.eb diff --git a/easybuild/easyconfigs/c/ccache/ccache-4.8.3.eb b/easybuild/easyconfigs/c/ccache/ccache-4.8.3.eb new file mode 100644 index 00000000000..0bbc94a62ba --- /dev/null +++ b/easybuild/easyconfigs/c/ccache/ccache-4.8.3.eb @@ -0,0 +1,54 @@ +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL + +easyblock = 'CMakeNinja' + +name = 'ccache' +version = '4.8.3' + +homepage = 'https://ccache.dev/' +description = """Ccache (or “ccache”) is a compiler cache. It speeds up recompilation by +caching previous compilations and detecting when the same compilation is being done again""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/ccache/ccache/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['d59dd569ad2bbc826c0bc335c8ebd73e78ed0f2f40ba6b30069347e63585d9ef'] + +osdependencies = [('glibc-static', 'libc6-dev')] + +local_gccver = '12.3.0' +builddependencies = [ + ('GCC', local_gccver), + ('CMake', '3.26.3', '', ('GCCcore', local_gccver)), + ('Ninja', '1.11.1', '', ('GCCcore', local_gccver)), + ('hiredis', '1.2.0', '', ('GCCcore', local_gccver)), + ('zstd', '1.5.5', '', ('GCCcore', local_gccver)), +] + +# use BFD linker rather than default ld.gold (required on CentOS 8) +preconfigopts = 'LDFLAGS="-fuse-ld=bfd"' +configopts = ' '.join([ + '-DENABLE_DOCUMENTATION=OFF', + '-DENABLE_IPO=ON', + # Link dependencies and binary statically + '-DCMAKE_EXE_LINKER_FLAGS="-static"', + '-DZSTD_LIBRARY="$EBROOTZSTD/lib/libzstd.a"', + '-DHIREDIS_LIBRARY="$EBROOTHIREDIS/lib/libhiredis.a"', + # Disable downloading dependencies + '-DZSTD_FROM_INTERNET=OFF -DHIREDIS_FROM_INTERNET=OFF', +]) + +sanity_check_paths = { + 'files': ['bin/ccache'], + 'dirs': [] +} +sanity_check_commands = [ + 'ccache --help', + # Ensure that the binary does not depend on any shared library + 'LC_ALL=C ldd $(which ccache) | grep -q "not a dynamic executable"', +] + +moduleclass = 'tools' From 8c6a7daf2226089bb74735c5aef3facf6bf276a9 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Mon, 4 Sep 2023 20:30:14 +0200 Subject: [PATCH 21/21] Add test for EC file permissions (#18647) --- test/easyconfigs/easyconfigs.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 34a7f346a85..b3142f30505 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -31,6 +31,7 @@ import os import re import shutil +import stat import sys import tempfile from collections import defaultdict @@ -1226,6 +1227,29 @@ def check_https_url(http_url): if failing_checks: self.fail('\n'.join(failing_checks)) + @skip_if_not_pr_to_non_main_branch() + def test_ec_file_permissions(self): + """Make sure correct access rights are set for easyconfigs.""" + + failing_checks = [] + for ec in self.changed_ecs: + ec_fn = os.path.basename(ec.path) + st = os.stat(ec.path) + read_perms = stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH + exec_perms = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + wrong_perms = [] + if (st.st_mode & read_perms) != read_perms: + wrong_perms.append("readable (owner, group, other)") + if st.st_mode & exec_perms: + wrong_perms.append("not executable") + if not (st.st_mode & stat.S_IWUSR): + wrong_perms.append("at least owner writable") + if wrong_perms: + failing_checks.append("%s must be %s, is: %s" % (ec_fn, ", ".join(wrong_perms), oct(st.st_mode))) + + if failing_checks: + self.fail('\n'.join(failing_checks)) + @skip_if_not_pr_to_non_main_branch() def test_pr_CMAKE_BUILD_TYPE(self): """Make sure -DCMAKE_BUILD_TYPE is no longer used (replaced by build_type)"""