Merge branch 'it4i-karolina'

This commit is contained in:
Jakub Kropacek 2022-09-24 14:28:19 +02:00 committed by anselmicz
commit a91967b60e
No known key found for this signature in database
GPG Key ID: 5271768D6FEA96BC
12 changed files with 1604 additions and 61 deletions

View File

@ -23,8 +23,7 @@ sanity_check_paths = {
postinstallcmds = [
'cp /mnt/proj3/easybuild/scripts/irods-startup.sh %(installdir)s/',
'cp /mnt/proj3/easybuild/scripts/irods.it4i.cz.crt %(installdir)s/',
# 'curl -L https://docs.it4i.cz/irods1.it4i.cz.crt -o %(installdir)s/irods1.it4i.cz.crt',
'cp /mnt/proj3/easybuild/scripts/chain_geant_ov_rsa_ca_4_full.* %(installdir)s/',
]
modluafooter = 'execute{cmd="bash $EBROOTIRODSFS/irods-startup.sh", modeA={"load"}}'

View File

@ -0,0 +1,26 @@
# IT4Innovations 2022
# JK
easyblock = 'JAR'
name = 'JUnit'
version = '4.13.2'
versionsuffix = '-Java-%(javaver)s'
homepage = 'http://sourceforge.net/projects/junit'
description = """A programmer-oriented testing framework for Java."""
toolchain = SYSTEM
source_urls = ['http://search.maven.org/remotecontent?filepath=junit/junit/%(version)s/']
sources = ['%(namelower)s-%(version)s.jar']
checksums = ['8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3']
dependencies = [('Java', '13', '', True)]
sanity_check_paths = {
'files': sources,
'dirs': [],
}
moduleclass = 'devel'

View File

@ -0,0 +1,16 @@
name = 'LAPACK'
version = '3.10.0'
homepage = 'https://www.netlib.org/lapack/'
description = """LAPACK is written in Fortran90 and provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue
problems, and singular value problems."""
toolchain = {'name': 'gompi', 'version': '2021a'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/Reference-LAPACK/lapack/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['328c1bea493a32cac5257d84157dc686cc3ab0b004e2bea22044e0a59f6f8a19']
moduleclass = 'numlib'

View File

@ -0,0 +1,50 @@
# Contribution from IT4Innovations National Supercomputing Center, Czech Republic
# JK
easyblock = 'ConfigureMake'
name = 'libreoffice'
version = '7.4.1.1'
local_javasuffix = '-Java-13'
homepage = 'https://libreoffice.org'
description = """
LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice).
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['http://download.documentfoundation.org/libreoffice/src/7.4.1/']
sources = ['%(name)s-%(version)s.tar.xz']
checksums = ['2c5c219c538776b4ec3815fe74c1915024cbe17dd0950e725e544ff49b20a28c']
builddependencies = [('Doxygen', '1.9.4')]
dependencies = [
('libxslt', '1.1.34'),
('Qt5', '5.15.5'),
('flex', '2.6.4'),
# ('GStreamer', '1.20.2'), # GCC, --disable-gstreamer
('NSS', '3.79'), # --disable-nss, experimental, will use OpenSSL instead
# ('NSPR', '4.34'), # fix for failed to initialize NSS library?
('GTK3', '3.24.33'),
('Python', '3.10.4'),
# ('Java', ''), # --without-java
('gperf', '3.1'),
# Java dependencies, or --without-java
('ant', '1.10.11', local_javasuffix, True),
# ('JUnit', '4.13.2', local_javasuffix, True), # --with-junit=${EBROOTJUNIT}
]
configure_cmd = "./autogen.sh"
configopts = '--disable-cups --disable-gstreamer-1.0 --disable-postgresql-sdbc --without-junit --disable-mariadb-sdbc'
buildopts = "verbose=t"
runtest = "check"
sanity_check_paths = {
'files': [],
'dirs': ["."]
}
moduleclass = 'tools'

1211
l/libreoffice/out Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
# IT4Innovations 2022
# JK
easyblock = 'CMakeMake'
name = 'Mmg'
version = '5.6.0'
homepage = 'https://www.mmgtools.org/'
description = """
Mmg is an open source software for simplicial remeshing. It provides 3 applications and 4 libraries:
the mmg2d application and the libmmg2d library: adaptation and optimization of a two-dimensional triangulation
and generation of a triangulation from a set of points or from given boundary edges
the mmgs application and the libmmgs library: adaptation and optimization of a surface triangulation
and isovalue discretization
the mmg3d application and the libmmg3d library: adaptation and optimization of a tetrahedral mesh
and implicit domain meshing
the libmmg library gathering the libmmg2d, libmmgs and libmmg3d libraries
"""
toolchain = {'name': 'gompi', 'version': '2021a'}
source_urls = ['https://github.com/MmgTools/mmg/archive']
sources = ['v%(version)s.tar.gz']
patches = ['mmg-%(version)s_remove_ci_tests.patch']
checksums = [
'bbf9163d65bc6e0f81dd3acc5a51e4a8c47a7fdae849abc26277e01154fe2437', # v5.6.0.tar.gz
'99de7437fb9d036c786b7f1526da93d4aa1d28e728fe7279f4c9204bbbb9f734', # mmg-5.6.0_remove_ci_tests.patch
]
builddependencies = [('CMake', '3.20.1')]
dependencies = [('SCOTCH', '6.1.0')]
# CI tests require downloading of data that might not be available in the future.
# Sticking to tests included in the source with help of patch
configopts = '-DUSE_SCOTCH=ON -DBUILD_TESTING=ON -DONLY_VERY_SHORT_TESTS=ON '
configopts += '-DTEST_LIBMMG2D=ON -DTEST_LIBMMG3D=ON -DTEST_LIBMMGS=ON '
configopts += '-DLIBMMG2D_SHARED=ON -DLIBMMG3D_SHARED=ON -DLIBMMGS_SHARED=ON -DLIBMMG_SHARED=ON '
runtest = 'test'
sanity_check_paths = {
'files': ['bin/%s_O3' % x for x in ['mmg2d', 'mmg3d', 'mmgs']] +
['lib/lib%s.%s' % (x, y) for x in ['mmg2d', 'mmg3d', 'mmgs', 'mmg'] for y in ['a', SHLIB_EXT]],
'dirs': ['include/mmg/%s' % x for x in ['mmg2d', 'mmg3d', 'mmgs']]
}
moduleclass = 'math'

View File

@ -0,0 +1,27 @@
# IT4Innovations
# JK 2022
easyblock = 'PythonPackage'
name = 'mpi4py'
version = '3.1.3'
homepage = 'http://mpi4py.scipy.org/docs'
description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for
the Python programming language, allowing any Python program to exploit multiple processors."""
toolchain = {'name': 'foss', 'version': '2021a'}
source_urls = [PYPI_SOURCE]
sources = [SOURCE_TAR_GZ]
dependencies = [
('Python', '3.9.5'),
]
sanity_check_paths = {
'files': [],
'dirs': ['lib/python3.9/site-packages/mpi4py'],
}
moduleclass = 'mpi'

View File

@ -1,59 +0,0 @@
# IT4Innovations
# LK JK
name = 'PETSc'
version = '3.17.2'
homepage = 'https://www.mcs.anl.gov/petsc'
description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
scalable (parallel) solution of scientific applications modeled by partial differential equations."""
toolchain = {'name': 'foss', 'version': '2021a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'openmp': True, 'usempi': True, 'optarch': 'march=core-avx2', 'pic': True}
else:
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}
source_urls = [
'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'PETSc_ranlib-fix.patch',
]
checksums = [
'2313dd1ca41bf0ace68671ea6f8d4abf90011ed899f5e1e08658d3f18478359d', # petsc-3.17.2.tar.gz
'64cf9d5008d5e92117e65bdec5316d991b6a6b8c8ecf7ea46eb790a498266297', # PETSc_ranlib-fix.patch
]
builddependencies = [('CMake', '3.20.1')]
dependencies = [
('Python', '3.9.5'),
('SciPy-bundle', '2021.05'),
('Boost', '1.76.0'),
('METIS', '5.1.0'),
('SCOTCH', '6.1.0'),
('MUMPS', '5.4.0', '-metis'),
# ('SuiteSparse', '5.10.1', '-METIS-5.1.0'),
('Hypre', '2.24.0'),
]
# enabling --with-mpi4py seems to be totally broken, leads to make errors like:
# No rule to make target 'mpi4py-build'
configopts = ' CC=$CC CXX=$CXX FC=$FC F77=$F77 F90=$F90 '
configopts += ' CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS FFLAGS=$FFLAGS F90FLAGS=$F90FLAGS '
configopts += ' CPPFLAGS=$CPPFLAGS LDFLAGS=$LDFLAGS '
configopts += ' --LIBS="$LIBS -lrt" --with-mpi4py=0 '
#configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 --with-fortran=1 --download-scalapack '
#configopts += '--download-parmetis --download-metis --download-mumps=yes'
shared_libs = 1
# only required when building PETSc in a SLURM job environment
# configopts += '--with-batch=1 --known-mpi-shared-libraries=1 --known-64-bit-blas-indices=0 '
# prebuildopts = "srun ./conftest-arch-linux2-c-opt && ./reconfigure-arch-linux2-c-opt.py && "
moduleclass = 'numlib'

View File

@ -0,0 +1,86 @@
# Updated to version 3.17.0 with significantly more modules added
# J. Sassmannshausen ICL/UK
easyblock = 'ConfigureMake'
name = 'PETSc'
version = '3.17.4'
homepage = 'https://www.mcs.anl.gov/petsc'
description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
scalable (parallel) solution of scientific applications modeled by partial differential equations.
This installation is build with significant amounts of modules in it compared to previous versions."""
toolchain = {'name': 'foss', 'version': '2021a'}
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}
source_urls = [
'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'webclient-3.17.0.patch',
]
checksums = [
'99c127486722a3ffd95a268b4ceb0976cbf217926c681a9631bd7246eab8cb2a', # petsc-3.17.4.tar.gz
'2ba253df42853385e2683dbc87dfcb66d4ce4bcd84e054efa8f466274f49bc81', # webclient-3.17.0.patch
]
builddependencies = [
('Eigen', '3.3.9'),
('CMake', '3.20.1')
]
dependencies = [
('Python', '3.9.5'),
('SciPy-bundle', '2021.05'),
('Boost', '1.76.0'),
('METIS', '5.1.0'),
('SCOTCH', '6.1.0'),
('MUMPS', '5.4.0', '-metis'),
('SuiteSparse', '5.10.1', '-METIS-5.1.0'),
('Hypre', '2.21.0'),
('zlib', '1.2.11'),
('BLIS', '0.8.1'),
('Szip', '2.1.1'),
('HDF5', '1.12.1'),
('GMP', '6.2.1'),
('GSL', '2.7'),
('libjpeg-turbo', '2.0.6'),
('libpng', '1.6.37'),
('giflib', '5.2.1'),
('OpenSSL', '1.1', '', True),
('libyaml', '0.2.5'),
('zstd', '1.4.9'),
('Mmg', '5.6.0'),
('MPFR', '4.1.0'),
('googletest', '1.11.0'),
('muParser', '2.3.3'),
('ParMETIS', '4.0.3'),
]
# enabling --with-mpi4py seems to be totally broken, leads to make errors like:
# No rule to make target 'mpi4py-build'
configopts = '--configModules=PETSc.Configure --optionsModule=config.compilerOptions '
configopts += '--LIBS="$LIBS -lrt" --download-mpi4py --with-mpi4py=1 --download-petsc4py --CXXFLAGS="$CXXFLAGS '
configopts += '-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX" --with-mpi=1 --with-build-step-np=4 '
configopts += '--CPPFLAGS="$CPPFLAGS" --F90FLAGS="$F90FLAGS" --FFLAGS="$FFLAGS" --FCFLAGS="$FCFLAGS" '
configopts += '--with-blaslapack-lib=" -lflexiblas -lgfortran" '
configopts += '--with-shared-libraries=1 --with-debugging=0 --with-pic=1 --with-x=0 '
configopts += '--with-windows-graphics=0 --with-numpy=1 --with-fftw=1 --with-scalapack=1 '
configopts += '--with-python=1 --with-boost=1 --with-metis=1 -with-ptscotch=1 --with-mumps=1 '
configopts += '--with-hypre=1 --with-suitesparse=1 --with-hwloc=1 --with-openmp=1 --with-zlib=1 --with-blis=1 '
configopts += '--with-hdf5=1 --with-eigen=1 --with-parmetis=1 --with-gmp=1 --with-gsl=1 --with-libjpeg=1 '
configopts += '--with-libpng=1 --with-yaml=1 --with-zstd=1 --with-ssl=1 --with-triangle=0 --with-giflib=1 '
sanity_check_paths = {
'files': ['lib/libpetsc.%s' % SHLIB_EXT],
'dirs': ['include', 'share']
}
modextrapaths = {'PYTHONPATH': 'lib'}
moduleclass = 'numlib'

View File

@ -0,0 +1,69 @@
Based on https://gitlab.com/petsc/petsc/-/merge_requests/5257
Author: J. Sassmannshausen / ICL (UK)
diff --git a/petsc-3.17.0.orig/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py b/petsc-3.17.0/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
index ecc3b03..6c6c354 100755
--- a/petsc-3.17.0.orig/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
+++ b/petsc-3.17.0/config/examples/arch-ci-freebsd-cxx-cmplx-pkgs-dbg.py
@@ -36,6 +36,7 @@ configure_options = [
'--with-mpi-f90module-visibility=0',
'--download-kokkos=1',
'--download-kokkos-kernels=1',
+ '--with-ssl=1',
]
if __name__ == '__main__':
diff --git a/petsc-3.17.0.orig/config/examples/arch-ci-linux-gcc-pkgs-opt.py b/petsc-3.17.0/config/examples/arch-ci-linux-gcc-pkgs-opt.py
index 8828156..132e3d6 100755
--- a/petsc-3.17.0.orig/config/examples/arch-ci-linux-gcc-pkgs-opt.py
+++ b/petsc-3.17.0/config/examples/arch-ci-linux-gcc-pkgs-opt.py
@@ -28,6 +28,7 @@ configure_options = [
'--download-amrex',
'--download-hypre',
'--download-ks',
+ '--with-ssl=1',
]
if __name__ == '__main__':
diff --git a/petsc-3.17.0.orig/src/sys/webclient/box.c b/petsc-3.17.0/src/sys/webclient/box.c
index d306966..eb2fac7 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/box.c
+++ b/petsc-3.17.0/src/sys/webclient/box.c
@@ -304,9 +304,9 @@ PetscErrorCode PetscBoxUpload(MPI_Comm comm,const char access_token[],const char
PetscCall(PetscPushJSONValue(body,"mimeType","text.html",len));
PetscCall(PetscStrcat(body,","));
PetscCall(PetscPushJSONValue(body,"description","a file",len));
- ierr = PetscStrcat(body, "}\r\n\r\n"
- "--foo_bar_baz\r\n"
- "Content-Type: text/html\r\n\r\n");PetscCall(ierr);
+ PetscCall(PetscStrcat(body, "}\r\n\r\n"
+ "--foo_bar_baz\r\n"
+ "Content-Type: text/html\r\n\r\n"));
PetscCall(PetscStrlen(body,&blen));
fd = fopen (filename, "r");
PetscCheck(fd,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to open file: %s",filename);
diff --git a/petsc-3.17.0.orig/src/sys/webclient/client.c b/petsc-3.17.0/src/sys/webclient/client.c
index dfe6b12..350cac9 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/client.c
+++ b/petsc-3.17.0/src/sys/webclient/client.c
@@ -123,7 +123,7 @@ static PetscErrorCode PetscHTTPBuildRequest(const char type[],const char url[],c
if (header) {
PetscCall(PetscStrendswith(header,"\r\n",&flg));
- PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_WRONG,"header must end with \\r\");
+ PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_WRONG,"header must end with \\r\\n");
}
PetscCall(PetscStrlen(type,&typelen));
diff --git a/petsc-3.17.0.orig/src/sys/webclient/google.c b/petsc-3.17.0/src/sys/webclient/google.c
index 8626b7c..c66f8cc 100644
--- a/petsc-3.17.0.orig/src/sys/webclient/google.c
+++ b/petsc-3.17.0/src/sys/webclient/google.c
@@ -158,7 +158,7 @@ PetscErrorCode PetscGoogleDriveUpload(MPI_Comm comm,const char access_token[],co
fd = fopen (filename, "r");
PetscCheck(fd,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to open file: %s",filename);
rd = fread (body+blen, sizeof (unsigned char), sb.st_size, fd);
- PetscCheckFalse(rd != (size_t) sb.st_size,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to read entire file: %s %d %d",filename,(int)rd,sb.st_size);
+ PetscCheckFalse(rd != (size_t) sb.st_size,PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Unable to read entire file: %s %d %d",filename,(int)rd,(int)sb.st_size);
fclose(fd);
body[blen + rd] = 0;
ierr = PetscStrcat(body,"\r\n\r\n"

View File

@ -0,0 +1,34 @@
# IT4Innovations 2022
# JK
name = 'SuiteSparse'
version = '5.13.0'
local_metis_ver = '5.1.0'
versionsuffix = '-METIS-%s' % local_metis_ver
homepage = 'https://faculty.cse.tamu.edu/davis/suitesparse.html'
description = """SuiteSparse is a collection of libraries manipulate sparse matrices."""
toolchain = {'name': 'foss', 'version': '2021a'}
toolchainopts = {'unroll': True, 'pic': True}
source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['59c6ca2959623f0c69226cf9afb9a018d12a37fab3a8869db5f6d7f83b6b147d']
builddependencies = [
('CMake', '3.20.1'),
('M4', '1.4.18'),
]
dependencies = [
('METIS', local_metis_ver),
('MPFR', '4.1.0'),
]
# make sure that bin/demo can find libsuitesparseconfig.so.5 during build
prebuildopts = "export LD_LIBRARY_PATH=%(builddir)s/SuiteSparse-%(version)s/lib:$LD_LIBRARY_PATH && "
# remove broken symlink
prebuildopts += "rm GraphBLAS/CUDA/test/graphblascuda_test && "
moduleclass = 'numlib'

View File

@ -0,0 +1,35 @@
easyblock = 'ConfigureMake'
name = 'XMLSec'
version = '1.2.34'
homepage = 'https://www.aleksey.com/xmlsec/index.html'
description = """XML Security Library is a C library based on LibXML2,
supporting major XML security standards."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['http://www.aleksey.com/xmlsec/download/']
sources = ['%(namelower)s%(version_major)s-%(version)s.tar.gz']
checksums = ['52ced4943f35bd7d0818a38298c1528ca4ac8a54440fd71134a07d2d1370a262']
builddependencies = [
('binutils', '2.38')
]
dependencies = [
('libtool', '2.4.7'),
('libxml2', '2.9.13'),
('OpenSSL', '1.1', '', True),
]
sanity_check_paths = {
'files': ['bin/xmlsec1', 'bin/xmlsec1-config',
'lib/libxmlsec1.a', 'lib/libxmlsec1-openssl.a',
'lib/libxmlsec1.%s.%s' % (SHLIB_EXT, version),
'lib/libxmlsec1-openssl.%s.%s' % (SHLIB_EXT, version)],
'dirs': ['include/xmlsec%(version_major)s/xmlsec', 'share'],
}
moduleclass = 'lib'