From 41977c11fba301b92b2316d8c28e3b08978cb69a Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann Date: Mon, 16 Dec 2024 11:34:14 +0100 Subject: [PATCH 1/4] add needed ecs for Meep 1.29.0 in foss 2024a --- .../h/Harminv/Harminv-1.4.2-foss-2023b.eb | 30 +++++++++++ .../h/Harminv/Harminv-1.4.2-foss-2024a.eb | 30 +++++++++++ .../libGDSII/libGDSII-0.21-GCCcore-13.3.0.eb | 26 ++++++++++ .../l/libctl/libctl-4.5.1-GCCcore-13.3.0.eb | 33 ++++++++++++ .../m/MPB/MPB-1.11.1-foss-2024a.eb | 48 +++++++++++++++++ .../m/Meep/Meep-1.29.0-foss-2024a.eb | 52 +++++++++++++++++++ .../pkg-config-0.29.2-GCCcore-13.3.0.eb | 36 +++++++++++++ 7 files changed, 255 insertions(+) create mode 100644 easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb create mode 100644 easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb create mode 100644 easybuild/easyconfigs/l/libGDSII/libGDSII-0.21-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/l/libctl/libctl-4.5.1-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb create mode 100644 easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb create mode 100644 easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-13.3.0.eb diff --git a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb new file mode 100644 index 00000000000..ff801ec3e23 --- /dev/null +++ b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'Harminv' +version = '1.4.2' + +homepage = 'https://github.com/stevengj/harminv' +description = """Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - + given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially + decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those + sinusoids.""" + +toolchain = {'name': 'foss', 'version': '2023b'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'cstd': 'c99'} + +source_urls = ['https://github.com/stevengj/harminv/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5a9a1bf710972442f065d0d62c62d0c4ec3da4a3696d7160a35602c9470bc7a2'] + +builddependencies = [ + ('pkgconfig', '1.5.5', '-python'), +] + +configopts = "--with-pic --with-blas=${EBROOTOPENBLAS} --with-lapack=${EBROOTSCALAPACK} --enable-shared" + +sanity_check_paths = { + 'files': ['bin/harminv', 'include/harminv.h', 'lib/libharminv.a', 'lib/libharminv.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb new file mode 100644 index 00000000000..bae8887afad --- /dev/null +++ b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'Harminv' +version = '1.4.2' + +homepage = 'https://github.com/stevengj/harminv' +description = """Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - + given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially + decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those + sinusoids.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'cstd': 'c99'} + +source_urls = ['https://github.com/stevengj/harminv/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5a9a1bf710972442f065d0d62c62d0c4ec3da4a3696d7160a35602c9470bc7a2'] + +builddependencies = [ + ('pkg-config', '0.29.2'), +] + +configopts = "--with-pic --with-blas=openblas --with-lapack=openblas --enable-shared" + +sanity_check_paths = { + 'files': ['bin/harminv', 'include/harminv.h', 'lib/libharminv.a', 'lib/libharminv.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/libGDSII/libGDSII-0.21-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libGDSII/libGDSII-0.21-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..3b4775dd8d3 --- /dev/null +++ b/easybuild/easyconfigs/l/libGDSII/libGDSII-0.21-GCCcore-13.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libGDSII' +version = '0.21' + +homepage = 'https://github.com/HomerReid/libGDSII' +description = """libGDSII is a C++ library for working with GDSII binary data files, + intended primarily for use with the computational electromagnetism codes + scuff-em and meep but sufficiently general-purpose to allow other uses as well.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/HomerReid/libGDSII/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['31c90a4fb699746d051c0c597ef0543889c9f17b2a711fed398756ac4f1b1f4c'] + +builddependencies = [ + ('binutils', '2.42'), +] + +sanity_check_paths = { + 'files': ['bin/GDSIIConvert', 'include/libGDSII.h', 'lib/libGDSII.a', 'lib/libGDSII.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/l/libctl/libctl-4.5.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libctl/libctl-4.5.1-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..f8df1e59078 --- /dev/null +++ b/easybuild/easyconfigs/l/libctl/libctl-4.5.1-GCCcore-13.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libctl' +version = '4.5.1' + +homepage = 'https://libctl.readthedocs.io/en/latest/' +description = """libctl is a free Guile-based library implementing flexible control files for scientific simulations.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/NanoComp/libctl/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['fcfeb2f13dda05b560f0ec6872757d9318fdfe8f4bc587eb2053a29ba328ae25'] + +builddependencies = [ + ('binutils', '2.42'), + ('Autotools', '20231222'), # required for libtool +] + +dependencies = [ + ('Guile', '3.0.10'), +] + +configopts = '--with-pic --enable-shared' + +sanity_check_paths = { + 'files': ['bin/gen-ctl-io', 'lib/libctl.a', 'lib/libctlgeom.a', + 'lib/libctlgeom.%s' % SHLIB_EXT, 'lib/libctl.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb b/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb new file mode 100644 index 00000000000..229d25efd90 --- /dev/null +++ b/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb @@ -0,0 +1,48 @@ +easyblock = 'ConfigureMake' + +name = 'MPB' +version = '1.11.1' + +homepage = 'https://mpb.readthedocs.io/en/latest/' +description = """MPB is a free and open-source software package for computing + the band structures, or dispersion relations, and electromagnetic + modes of periodic dielectric structures, on both serial + and parallel computers. MPB is an acronym for MIT Photonic Bands.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://github.com/NanoComp/mpb/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['dc55b081c56079727dac92d309f8e4ea84ca6eea9122ec24b7955f8c258608e1'] + +builddependencies = [ + ('Autotools', '20231222'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('HDF5', '1.14.5'), + ('libctl', '4.5.1'), + ('Guile', '3.0.10'), + ('libreadline', '8.2'), +] + +local_common_configopts = "--with-pic --with-blas=openblas --with-lapack=openblas " +local_common_configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +configopts = [ + local_common_configopts + " ", + local_common_configopts + " --with-inv-symmetry", + local_common_configopts + " --with-mpi ", + local_common_configopts + " --with-mpi --with-inv-symmetry", +] + +sanity_check_paths = { + 'files': ['bin/mpb%s' % x for x in ['', '-data', 'i', 'i-data', 'i-mpi', 'i-split', '-mpi', '-split']] + + ['lib/libmpb.a', 'lib/libmpbi_mpi.a', 'lib/libmpbi.a', 'lib/libmpb_mpi.a', 'lib/libmpb.%s' % SHLIB_EXT, + 'lib/libmpbi_mpi.%s' % SHLIB_EXT, 'lib/libmpbi.%s' % SHLIB_EXT, 'lib/libmpb_mpi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb b/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb new file mode 100644 index 00000000000..1fb9c576cc6 --- /dev/null +++ b/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'Meep' +version = '1.29.0' + +homepage = 'https://meep.readthedocs.io/en/latest/' +description = """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package + developed at MIT to model electromagnetic systems.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'usempi': True, 'opt': True, 'unroll': True, 'pic': True} + +source_urls = ['https://github.com/NanoComp/%(namelower)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +checksums = ['68279f862cf9342a6e0f2023667d6a6ac7c1eafe46663705519772f312412194'] + +builddependencies = [ + ('Autotools', '20231222'), + ('pkgconfig', '1.5.5', '-python'), + ('SWIG', '4.2.1') +] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('matplotlib', '3.9.2'), + ('MPB', '1.11.1'), + ('Harminv', '1.4.2'), + ('HDF5', '1.14.5'), + ('libctl', '4.5.1'), + ('libGDSII', '0.21'), + ('GSL', '2.8'), + ('Guile', '3.0.10'), +] + +configopts = "--with-pic --with-mpi --with-blas=openblas --with-lapack=openblas --without-gcc-arch " +configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " + +sanity_check_paths = { + 'files': ['bin/meep', 'include/meep.hpp', 'lib/libmeep.a', 'lib/libpympb.a', + 'lib/libmeep.%s' % SHLIB_EXT, 'lib/libpympb.%s' % SHLIB_EXT], + 'dirs': ['include/meep', 'lib/python%(pyshortver)s/site-packages/meep', 'share/meep'], +} + +sanity_check_commands = [ + "meep --help", + "python -c 'import meep'", +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..2e730ceb8fd --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-13.3.0.eb @@ -0,0 +1,36 @@ +# pkgconf should be used in preference to pkg-config +# This is included for use only in software that fails to build when using pkgconf +easyblock = 'ConfigureMake' + +name = 'pkg-config' +version = '0.29.2' + +homepage = 'https://www.freedesktop.org/wiki/Software/pkg-config/' + +description = """ + pkg-config is a helper tool used when compiling applications and libraries. + It helps you insert the correct compiler options on the command line so an + application can use gcc -o test test.c `pkg-config --libs --cflags glib-2.0` + for instance, rather than hard-coding values on where to find glib (or other + libraries). +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://pkg-config.freedesktop.org/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591'] + +builddependencies = [('binutils', '2.42')] + +# don't use PAX, it might break. +tar_config_opts = True + +configopts = " --with-internal-glib" + +sanity_check_paths = { + 'files': ['bin/pkg-config'], + 'dirs': [], +} + +moduleclass = 'devel' From 39b486959057a62d79d2c31cbf06ed5b1ae87178 Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann Date: Wed, 18 Dec 2024 17:24:23 +0100 Subject: [PATCH 2/4] fix: openblas to flexiblas --- ...arminv-1.4.2-foss-2024a.eb => Harminv-1.4.2-gfbf-2024a.eb} | 4 ++-- easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb | 2 +- easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename easybuild/easyconfigs/h/Harminv/{Harminv-1.4.2-foss-2024a.eb => Harminv-1.4.2-gfbf-2024a.eb} (87%) diff --git a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2024a.eb similarity index 87% rename from easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb rename to easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2024a.eb index bae8887afad..c04e0082ea9 100644 --- a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2024a.eb +++ b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2024a.eb @@ -9,7 +9,7 @@ description = """Harminv is a free program (and accompanying library) to solve t decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those sinusoids.""" -toolchain = {'name': 'foss', 'version': '2024a'} +toolchain = {'name': 'gfbf', 'version': '2024a'} toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'cstd': 'c99'} source_urls = ['https://github.com/stevengj/harminv/releases/download/v%(version)s/'] @@ -20,7 +20,7 @@ builddependencies = [ ('pkg-config', '0.29.2'), ] -configopts = "--with-pic --with-blas=openblas --with-lapack=openblas --enable-shared" +configopts = "--with-pic --with-blas=flexiblas --with-lapack=flexiblas --enable-shared" sanity_check_paths = { 'files': ['bin/harminv', 'include/harminv.h', 'lib/libharminv.a', 'lib/libharminv.%s' % SHLIB_EXT], diff --git a/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb b/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb index 229d25efd90..06d6d299390 100644 --- a/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb +++ b/easybuild/easyconfigs/m/MPB/MPB-1.11.1-foss-2024a.eb @@ -28,7 +28,7 @@ dependencies = [ ('libreadline', '8.2'), ] -local_common_configopts = "--with-pic --with-blas=openblas --with-lapack=openblas " +local_common_configopts = "--with-pic --with-blas=flexiblas --with-lapack=flexiblas " local_common_configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " configopts = [ diff --git a/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb b/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb index 1fb9c576cc6..54fa4e7e72f 100644 --- a/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/Meep/Meep-1.29.0-foss-2024a.eb @@ -33,7 +33,7 @@ dependencies = [ ('Guile', '3.0.10'), ] -configopts = "--with-pic --with-mpi --with-blas=openblas --with-lapack=openblas --without-gcc-arch " +configopts = "--with-pic --with-mpi --with-blas=flexiblas --with-lapack=flexiblas --without-gcc-arch " configopts += "--with-libctl=$EBROOTLIBCTL/share/libctl --enable-shared " sanity_check_paths = { From c3d6e21e75b50edde1ea4bff8cdfb762bf41d2f5 Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann Date: Wed, 18 Dec 2024 17:42:01 +0100 Subject: [PATCH 3/4] fix 2023b version of Harminv --- .../h/Harminv/Harminv-1.4.2-gfbf-2023b.eb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2023b.eb diff --git a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2023b.eb b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2023b.eb new file mode 100644 index 00000000000..687e1bf1752 --- /dev/null +++ b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-gfbf-2023b.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'Harminv' +version = '1.4.2' + +homepage = 'https://github.com/stevengj/harminv' +description = """Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - + given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially + decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those + sinusoids.""" + +toolchain = {'name': 'gfbf', 'version': '2023b'} +toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'cstd': 'c99'} + +source_urls = ['https://github.com/stevengj/harminv/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5a9a1bf710972442f065d0d62c62d0c4ec3da4a3696d7160a35602c9470bc7a2'] + +builddependencies = [ + ('pkgconfig', '1.5.5', '-python'), +] + +configopts = "--with-pic --with-blas=flexiblas --with-lapack=flexiblas --enable-shared" + +sanity_check_paths = { + 'files': ['bin/harminv', 'include/harminv.h', 'lib/libharminv.a', 'lib/libharminv.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'math' From 704a36298e6173c9485a6f0519271e805339cffa Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann <82444481+jkuhl-uni@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:17:37 +0100 Subject: [PATCH 4/4] Delete foss version of Harminv --- .../h/Harminv/Harminv-1.4.2-foss-2023b.eb | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb diff --git a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb b/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb deleted file mode 100644 index ff801ec3e23..00000000000 --- a/easybuild/easyconfigs/h/Harminv/Harminv-1.4.2-foss-2023b.eb +++ /dev/null @@ -1,30 +0,0 @@ -easyblock = 'ConfigureMake' - -name = 'Harminv' -version = '1.4.2' - -homepage = 'https://github.com/stevengj/harminv' -description = """Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - - given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially - decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those - sinusoids.""" - -toolchain = {'name': 'foss', 'version': '2023b'} -toolchainopts = {'opt': True, 'unroll': True, 'pic': True, 'cstd': 'c99'} - -source_urls = ['https://github.com/stevengj/harminv/releases/download/v%(version)s/'] -sources = [SOURCELOWER_TAR_GZ] -checksums = ['5a9a1bf710972442f065d0d62c62d0c4ec3da4a3696d7160a35602c9470bc7a2'] - -builddependencies = [ - ('pkgconfig', '1.5.5', '-python'), -] - -configopts = "--with-pic --with-blas=${EBROOTOPENBLAS} --with-lapack=${EBROOTSCALAPACK} --enable-shared" - -sanity_check_paths = { - 'files': ['bin/harminv', 'include/harminv.h', 'lib/libharminv.a', 'lib/libharminv.%s' % SHLIB_EXT], - 'dirs': [] -} - -moduleclass = 'math'