From e6fff1ea94d5df64eaf0bbaf344553eb0bdac640 Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Thu, 20 Mar 2025 10:10:27 +0100 Subject: [PATCH] new file: c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb new file: c/CRYSTAL/CRYSTAL23-ifort_i64.patch new file: c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch new file: f/ffnvcodec/ffnvcodec-12.2.72.0.eb new file: p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb new file: w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb new file: x/XALT/XALT-3.1.4.eb --- ...s-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb | 52 ++++++++++++ ...21.4.0-OpenMPI-4.1.1-1.0.1-PdistribOMP.eb} | 18 ++-- c/CRYSTAL/CRYSTAL23-ifort_i64.patch | 49 +++++++++++ c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch | 29 +++++++ f/ffnvcodec/ffnvcodec-12.2.72.0.eb | 32 +++++++ p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb | 84 +++++++++++++++++++ w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb | 63 ++++++++++++++ x/XALT/XALT-3.1.4.eb | 66 +++++++++++++++ 8 files changed, 388 insertions(+), 5 deletions(-) create mode 100644 c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb rename c/CRYSTAL/{CRYSTAL-23-intel-2021b-1.0.1-PdistribOMP.eb => CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-PdistribOMP.eb} (69%) create mode 100644 c/CRYSTAL/CRYSTAL23-ifort_i64.patch create mode 100644 c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch create mode 100644 f/ffnvcodec/ffnvcodec-12.2.72.0.eb create mode 100644 p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb create mode 100644 w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb create mode 100644 x/XALT/XALT-3.1.4.eb diff --git a/c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb b/c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb new file mode 100644 index 00000000..d9917327 --- /dev/null +++ b/c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-Pdistrib.eb @@ -0,0 +1,52 @@ +# IT4Innovations +# LK 2025 + +easyblock = 'MakeCp' + +name = 'CRYSTAL' +version = '23' +versionsuffix = '-OpenMPI-4.1.1-1.0.1-Pdistrib' + +homepage = 'http://www.crystal.unito.it' +description = """The CRYSTAL package performs ab initio calculations of the ground state energy, energy +gradient, electronic wave function and properties of periodic systems. Hartree-Fock or Kohn- +Sham Hamiltonians (that adopt an Exchange-Correlation potential following the postulates of +Density-Functional Theory) can be used.""" + +toolchain = {'name': 'intel-compilers', 'version': '2021.4.0'} +toolchainopts = {'optarch': 'march=core-avx2'} + +dependencies = [ + ('OpenMPI', '4.1.1'), + ('imkl', '2021.4.0', '', True), +] + +sources = [ + 'crystal23_v1_0_1_Linux-ifort21.4_Pdistrib.tar', + 'utils23.tar', + 'documentation23.tar' +] +patches = ['CRYSTAL23-ifort_i64.patch'] +checksums = [ + '130ecac55434d476b9e24dc39b2cdf317bdd45d00631f616d95923ef82f86ac8', + '949d8e7f7c62e92e1e7c82e82a42f0fcd346d4336f175d369e1c8161abf1d2dd', + '4722ea50302a3908d95c4999ecb7ec466ceaeb7bd69688f81121b5752bc2a98c', + '48145e3ee5fd1826fb2ccea686b00fe168a7956e62e41809dfbc335f98439e6b' +] + +prebuildopts = "cd build && " +buildopts = "all" +parallel = 1 + +files_to_copy = [ + (['bin/Linux-ifort_i64/*/*'], 'bin'), + (['utils23/*'], 'utils23'), + (['*.pdf'], 'documentation'), +] + +sanity_check_paths = { + 'files': ['bin/crystal', 'bin/properties', 'bin/Pcrystal', 'bin/Pproperties'], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/c/CRYSTAL/CRYSTAL-23-intel-2021b-1.0.1-PdistribOMP.eb b/c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-PdistribOMP.eb similarity index 69% rename from c/CRYSTAL/CRYSTAL-23-intel-2021b-1.0.1-PdistribOMP.eb rename to c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-PdistribOMP.eb index 247b1278..55b9d17f 100644 --- a/c/CRYSTAL/CRYSTAL-23-intel-2021b-1.0.1-PdistribOMP.eb +++ b/c/CRYSTAL/CRYSTAL-23-intel-compilers-2021.4.0-OpenMPI-4.1.1-1.0.1-PdistribOMP.eb @@ -5,7 +5,7 @@ easyblock = 'MakeCp' name = 'CRYSTAL' version = '23' -versionsuffix = '-1.0.1-PdistribOMP' +versionsuffix = '-OpenMPI-4.1.1-1.0.1-PdistribOMP' homepage = 'http://www.crystal.unito.it' description = """The CRYSTAL package performs ab initio calculations of the ground state energy, energy @@ -13,22 +13,30 @@ gradient, electronic wave function and properties of periodic systems. Hartree-F Sham Hamiltonians (that adopt an Exchange-Correlation potential following the postulates of Density-Functional Theory) can be used.""" -toolchain = {'name': 'intel', 'version': '2020a'} -toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'} +toolchain = {'name': 'intel-compilers', 'version': '2021.4.0'} +toolchainopts = {'optarch': 'march=core-avx2'} + +dependencies = [ + ('OpenMPI', '4.1.1'), + ('imkl', '2021.4.0', '', True), +] sources = [ 'crystal23_v1_0_1_Linux-ifort21.4_PdistribOMP.tar', 'utils23.tar', 'documentation23.tar' ] +patches = ['CRYSTAL23-ifort_i64_omp.patch'] checksums = [ '90d737792f530e4094b97f1caaa1eea944df882212211c5ebb38676e60af5df3', '949d8e7f7c62e92e1e7c82e82a42f0fcd346d4336f175d369e1c8161abf1d2dd', - '4722ea50302a3908d95c4999ecb7ec466ceaeb7bd69688f81121b5752bc2a98c' + '4722ea50302a3908d95c4999ecb7ec466ceaeb7bd69688f81121b5752bc2a98c', + '7dab15caee31988b3c551eaab57282b2fc1ab5f997784eeaa7656c04ed86f7e5' ] #prebuildopts = 'tar -xf utils23.tar &&' prebuildopts = "cd build && " +buildopts = "all" parallel = 1 files_to_copy = [ @@ -38,7 +46,7 @@ files_to_copy = [ ] sanity_check_paths = { - 'files': ['bin/crystalOMP', 'bin/properties'], + 'files': ['bin/crystalOMP', 'bin/properties', 'bin/PcrystalOMP', 'bin/Pproperties'], 'dirs': [], } diff --git a/c/CRYSTAL/CRYSTAL23-ifort_i64.patch b/c/CRYSTAL/CRYSTAL23-ifort_i64.patch new file mode 100644 index 00000000..8c057a86 --- /dev/null +++ b/c/CRYSTAL/CRYSTAL23-ifort_i64.patch @@ -0,0 +1,49 @@ +--- build/Xmakes/Linux-ifort_i64.inc.orig 2022-10-13 03:12:09.000000000 +0200 ++++ build/Xmakes/Linux-ifort_i64.inc 2025-03-14 09:56:54.008977099 +0100 +@@ -1,10 +1,10 @@ + # For Linux based on x86_64 arch, using Intel Fortran Compiler + +-F90 = ifort ++F90 = mpif90 + LD = $(F90) +-PLD = ifort ++PLD = mpif90 + +-F90COMMON = -stand=f08 -diag-disable 7373 -diag-error=5198,6182,6893,6916,6919,7374,7416,7423,8089,8586 \ ++F90COMMON = -stand=none -diag-disable 7373 -diag-error=5198,6182,6893,6916,6919,7374,7416,7423,8089,8586 \ + -align -static-intel -cxxlib + F90FLAGS = $(F90COMMON) -O3 -march=core-avx2 + F90BASIS = $(F90COMMON) -O0 +@@ -13,18 +13,28 @@ + F90FIXED = -FI + F90FREE = -FR + SAVEMOD = -module $(MODDIR) +-INCMOD = -I$(MODDIR) ++INCMOD = -I$(MODDIR) -I/apps/all/OpenMPI/4.1.1-intel-compilers-2021.4.0/lib + LDFLAGS = $(F90FLAGS) +-LDLIBS = $(LIBXCFUN) -lm ++#LDLIBS = $(LIBXCFUN) -lm + #LDLIBS = + ++LDLIBS = $(LIBXCFUN) -Wl,--start-group \ ++ $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \ ++ $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -liomp5 -lpthread -lm -ldl -lmpi ++ ++LDLIBS = $(LIBXCFUN) -Wl,--start-group \ ++ $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a \ ++ $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a -Wl,--end-group \ ++ -liomp5 -lpthread -lm -ldl \ ++ -L/apps/all/OpenMPI/4.1.1-intel-compilers-2021.4.0/lib -lmpi ++ + MXMB = $(OBJDIR)/libmxm.o + + MACHINE_C=mach_linux + +-CC = icc ++CC = mpicc + CFLAGS = -O2 -vec-report0 -Wall -diag-disable 177,279,383,869,981,1418,1419,1572 -DNDEBUG +-CXX = icpc ++CXX = mpicc + CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions + + # MPI harness diff --git a/c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch b/c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch new file mode 100644 index 00000000..faac00bd --- /dev/null +++ b/c/CRYSTAL/CRYSTAL23-ifort_i64_omp.patch @@ -0,0 +1,29 @@ +--- build/Xmakes/Linux-ifort_i64_omp.inc.orig 2022-10-18 19:05:08.000000000 +0200 ++++ build/Xmakes/Linux-ifort_i64_omp.inc 2025-03-12 12:28:29.892035627 +0100 +@@ -13,17 +13,23 @@ + F90FIXED = -FI + F90FREE = -FR + SAVEMOD = -module $(MODDIR) +-INCMOD = -I$(MODDIR) ++INCMOD = -I$(MODDIR) -I/apps/all/OpenMPI/4.1.1-intel-compilers-2021.4.0/lib + LDFLAGS = $(F90FLAGS) + EIGENV = $(OBJDIR)/diag_lapack.o + MATMULT = $(OBJDIR)/mult_blas.o + + MKLPATH = $(MKLROOT)/lib/intel64 + ++#LDLIBS = $(LIBXCFUN) -Wl,--start-group \ ++#$(MKLPATH)/libmkl_intel_lp64.a $(MKLPATH)/libmkl_intel_thread.a \ ++#$(MKLPATH)/libmkl_core.a $(MKLPATH)/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -liomp5 -lpthread -lm -ldl ++#LDLIBS = ++ + LDLIBS = $(LIBXCFUN) -Wl,--start-group \ + $(MKLPATH)/libmkl_intel_lp64.a $(MKLPATH)/libmkl_intel_thread.a \ +-$(MKLPATH)/libmkl_core.a $(MKLPATH)/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -liomp5 -lpthread -lm -ldl +-#LDLIBS = ++$(MKLPATH)/libmkl_core.a $(MKLPATH)/libmkl_blacs_openmpi_lp64.a \ ++-L/apps/all/OpenMPI/4.1.1-intel-compilers-2021.4.0/lib -lmpi -lmpi_usempif08 -lmpi_mpifh \ ++-Wl,--end-group -liomp5 -lpthread -lm -ldl + + MXMB = $(OBJDIR)/libmxm.o + diff --git a/f/ffnvcodec/ffnvcodec-12.2.72.0.eb b/f/ffnvcodec/ffnvcodec-12.2.72.0.eb new file mode 100644 index 00000000..377a196b --- /dev/null +++ b/f/ffnvcodec/ffnvcodec-12.2.72.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'ffnvcodec' +version = '12.2.72.0' + +homepage = 'https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git' + +description = """FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present +(picked up dynamically).""" + +toolchain = SYSTEM + +sources = [{ + 'git_config': { + 'url': 'https://git.videolan.org/git/ffmpeg/', + 'repo_name': 'nv-codec-headers', + 'tag': 'n%(version)s', + }, + 'filename': SOURCE_TAR_GZ, +}] +checksums = ['39374e68968d5fac52cc9bc03ae9a79eefc66dcefbf9750ba00ae3084952adb1'] + +skipsteps = ['configure'] + +preinstallopts = 'sed -i "s|PREFIX =.*|PREFIX ?= %(installdir)s|" Makefile && ' + +sanity_check_paths = { + 'files': ['include/ffnvcodec/nvEncodeAPI.h', 'lib/pkgconfig/ffnvcodec.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb b/p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb new file mode 100644 index 00000000..fe1dabff --- /dev/null +++ b/p/PyQt6/PyQt-6.8.1-GCCcore-13.3.0.eb @@ -0,0 +1,84 @@ +# IT4Innovations +# LK 2026 + +easyblock = 'Bundle' + +name = 'PyQt6' +version = '6.8.1' + +homepage = 'https://www.riverbankcomputing.com/software/pyqt' +description = """PyQt5 is a set of Python bindings for v5 of the Qt application framework from The Qt Company. +This bundle includes PyQtWebEngine, a set of Python bindings for The Qt Company’s Qt WebEngine framework.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} +toolchainopts = {'cstd': 'c++11'} + +builddependencies = [('binutils', '2.42')] +dependencies = [ + ('Python', '3.12.3'), + ('Qt6', '6.7.2'), +] + +default_easyblock = 'PythonPackage' + +local_pylibdir = '%(installdir)s/lib/python%(pyshortver)s/site-packages' + +local_pyqt6_sip_install = "sip-install --verbose --target-dir " + local_pylibdir + " " +local_pyqt6_sip_install += "--confirm-license --no-designer-plugin --no-qml-plugin --no-tools" + +local_pyqtweb_configopts = "configure.py --verbose --destdir=%s/PyQt5 " % local_pylibdir +local_pyqtweb_configopts += "--apidir=%(installdir)s/qsci --pyqt-sipdir=%(builddir)s/PyQt5-%(version)s/sip " +local_pyqtweb_configopts += "--no-stubs --no-dist-info" + +local_setup_env = "export PATH=%(installdir)s/bin:$PATH && " +local_setup_env += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " +local_sipver = '6.10.0' +components = [ + ('SIP', local_sipver, { + 'source_urls': [PYPI_SOURCE], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['fa0515697d4c98dbe04d9e898d816de1427e5b9ae5d0e152169109fd21f5d29c'], + 'start_dir': 'sip-%s' % local_sipver, + 'use_pip': True, + 'options': {'modulename': 'PyQt6.sip'}, + }), + ('PyQt-builder', '1.10.1', { + 'source_urls': [PYPI_SOURCE], + 'sources': [SOURCE_TAR_GZ], + 'checksums': ['967b0c7bac0331597e9f8c5b336660f173a9896830b721d6d025e14bde647e17'], + 'start_dir': 'PyQt-builder-%(version)s', + 'use_pip': True, + }), + ('PyQt6_sip', '13.10.0', { + 'source_urls': [PYPI_SOURCE], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['d6daa95a0bd315d9ec523b549e0ce97455f61ded65d5eafecd83ed2aa4ae5350'], + 'start_dir': 'pyqt6_sip-%(version)s', + 'use_pip': True, + }), + (name, version, { + 'source_urls': [PYPI_SOURCE], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['91d937d6166274fafd70f4dee11a8da6dbfdb0da53de05f5d62361ddf775e256'], + 'easyblock': 'Binary', + 'start_dir': 'pyqt6-%(version)s', + 'skipsteps': ['configure', 'build'], + 'install_cmd': local_setup_env + local_pyqt6_sip_install, + }), +] + +sanity_check_paths = { + 'files': ['bin/pyqt-bundle', 'bin/sip-build', 'bin/sip-install'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "python -c 'import PyQt6.QtCore'", +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'QT_INSTALL_DATA': 'qsci', +} + +moduleclass = 'vis' diff --git a/w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb b/w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb new file mode 100644 index 00000000..b774886e --- /dev/null +++ b/w/Wayland/Wayland-1.23.0-GCCcore-13.3.0.eb @@ -0,0 +1,63 @@ +# Author: Jasper Grimm (UoY) +# URL of Wayland download changed to GitLab due to changes upstream +# Author: J. Sassmannshausen (Imperial College London/UK) +easyblock = 'Bundle' + +name = 'Wayland' +version = '1.23.0' + +homepage = 'https://wayland.freedesktop.org/' +description = """ +Wayland is a project to define a protocol for a compositor to talk to + its clients as well as a library implementation of the protocol. The + compositor can be a standalone display server running on Linux kernel + modesetting and evdev input devices, an X application, or a wayland + client itself. The clients can be traditional applications, X servers + (rootless or fullscreen) or other display servers. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +builddependencies = [ + ('CMake', '3.29.3'), + ('Meson', '1.4.0'), + ('Ninja', '1.12.1'), + ('pkgconf', '2.2.0'), + ('binutils', '2.42'), +] + +dependencies = [ + ('libffi', '3.4.5'), + ('expat', '2.6.2'), + ('libxml2', '2.12.7'), +] + +default_easyblock = 'MesonNinja' +default_component_specs = { + 'start_dir': '%(namelower)s-%(version)s', +} + +components = [ + ('wayland', version, { + 'source_urls': ['https://gitlab.freedesktop.org/wayland/%(namelower)s/-/releases/%(version)s/downloads'], + 'checksums': ['05b3e1574d3e67626b5974f862f36b5b427c7ceeb965cb36a4e6c2d342e45ab2'], + 'sources': [SOURCE_TAR_XZ], + 'configopts': "-Ddocumentation=false", + }), + ('wayland-protocols', '1.36', { + 'source_urls': ['https://gitlab.freedesktop.org/wayland/%(namelower)s/-/releases/%(version)s/downloads'], + 'checksums': ['71fd4de05e79f9a1ca559fac30c1f8365fa10346422f9fe795f74d77b9ef7e92'], + 'sources': [SOURCE_TAR_XZ], + 'preconfigopts': "PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH " + }), +] + +_libs = ['lib/libwayland-%s.%s' % (x, SHLIB_EXT) for x in ['client', 'cursor', 'egl', 'server']] +sanity_check_paths = { + 'files': ['bin/wayland-scanner'] + _libs, + 'dirs': ['lib'], +} + +sanity_check_commands = ["wayland-scanner --help", "wayland-scanner --version"] + +moduleclass = 'vis' diff --git a/x/XALT/XALT-3.1.4.eb b/x/XALT/XALT-3.1.4.eb new file mode 100644 index 00000000..895886f7 --- /dev/null +++ b/x/XALT/XALT-3.1.4.eb @@ -0,0 +1,66 @@ +# IT4Innovations +# LK 2025 + +name = 'XALT' +version = '3.1.4' + +homepage = 'https://github.com/xalt/xalt' +description = """XALT is a tool to allow a site to track user executables + and library usage on a cluster. When installed it can tell a site what are + the top executables by Node-Hours or by the number of users or the number + of times it is run. XALT 2 also tracks library usage as well. XALT 2 can + also track package use by R, MATLAB or Python. It tracks both MPI and + non-MPI programs.""" + +toolchain = SYSTEM + +# The location of XALT configuration file must be specified via +# 'config_py' easyconfig parameter. You can edit the easyconfig file, +# or use 'eb --try-amend=config_py='. " See +# https://xalt.readthedocs.io/en/latest/030_site_filtering.html for +# more information. +config_py = "/apps/.xalt/IT4I_config.py" + +# The name of the system must be specified via the 'syshost' +# easyconfig parameter. You can edit the easyconfig file, or use 'eb +# --try-amend=syshost='. See +# https://xalt.readthedocs.io/en/latest/020_site_configuration.html +# for more information. +syshost = "env_var:CLUSTERNAME" + +# The XALT transmission method must be specified via the +# 'transmission' easyconfig parameter. You can edit the easyconfig +# file, or use 'eb --try-amend=transmission='. See +# https://xalt.readthedocs.io/en/latest/020_site_configuration.html +# for more information. +transmission = "file" +file_prefix = "/ramdisk/.xalt" + +# Additional options +executable_tracking = True +gpu_tracking = False +logging_url = None +mysql = True +scalar_sampling = True +static_cxx = False + +source_urls = ['https://github.com/xalt/xalt/archive/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3a877c3456b40d2a25ba0703db489506473cb3828cd477857620827063edcbef'] + +builddependencies = [ + ('cURL', '7.76.0'), + ('flex', '2.6.4'), + ('util-linux', '2.36'), +] + +osdependencies = [ + ('bc'), + ('coreutils'), + ('libelf-dev', 'elfutils-libelf-devel'), + OS_PKG_OPENSSL_DEV, +] + +preconfigopts = "export PATH_TO_PYTHON=/usr/bin/python3.9 && " + +moduleclass = 'lib'