diff --git a/Batchsystem/slurm/build b/Batchsystem/slurm/build index 3800ffa..118fcd0 100755 --- a/Batchsystem/slurm/build +++ b/Batchsystem/slurm/build @@ -1,14 +1,9 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://download.schedmd.com/${P}/${P}-${V}.tar.bz2" - -pbuild::add_to_group 'Batchsystem' -pbuild::install_docfiles 'AUTHORS' 'INSTALL' 'NEWS' 'README.rst' 'RELEASE_NOTES' - pbuild::pre_configure() { - pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" + # pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" pbuild::add_configure_args "--with-nvml=${CUDA_PREFIX}" pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" - pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}" + # pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}" # pbuild::add_configure_args "--with-netloc=${HWLOC_PREFIX}" } diff --git a/Batchsystem/slurm/files/config.yaml b/Batchsystem/slurm/files/config.yaml new file mode 100644 index 0000000..9de30f2 --- /dev/null +++ b/Batchsystem/slurm/files/config.yaml @@ -0,0 +1,27 @@ +--- +# yamllint disable rule:line-length +format: 1 +slurm: + defaults: + group: Batchsystem + overlay: Alps + relstage: stable + docfiles: [AUTHORS, INSTALL, NEWS, README.rst RELEASE_NOTES] + urls: + - url: https://download.schedmd.com/${P}/${P}-${V}.tar.bz2 + shasums: + slurm-24.05.3.tar.bz2: b0b40513e9b6ae867ddb95d60b950bcb980c15b735b5d0dea37a9a00cc64ae24 + + versions: + 24.05.3: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: unstable + overlay: Alps + use_overlays: [PSI] + group_deps: + compiler: {gcc: [12.3.0]} + build_requires: [cuda/12.2.0, hwloc/2.11.1, patchelf/0.14.5] + configure_args+: + - '--with-pmix=/opt/psi/overlays/Alps/Libraries/pmix/2.2.5:/opt/psi/overlays/Alps/Libraries/pmix/3.2.5:/opt/psi/overlays/Alps/Libraries/pmix/4.2.9:/opt/psi/overlays/Alps/Libraries/pmix/5.0.3' + - '--with-cray_shasta' diff --git a/Compiler/OpenBLAS/build b/Compiler/OpenBLAS/build index 44020d4..6e021f3 100755 --- a/Compiler/OpenBLAS/build +++ b/Compiler/OpenBLAS/build @@ -1,13 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://github.com/xianyi/$P/archive/v${V_PKG}.tar.gz" - -pbuild::add_to_group 'Compiler' -pbuild::install_docfiles 'LICENSE' 'README.md' -#pbuild::set_supported_compilers 'gcc' 'intel' 'clang-macos' - -pbuild::pre_configure() { - pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=Release" - pbuild::add_configure_args "-DDYNAMIC_ARCH=ON" -} - diff --git a/Compiler/OpenBLAS/files/config.yaml b/Compiler/OpenBLAS/files/config.yaml new file mode 100644 index 0000000..7d5db3f --- /dev/null +++ b/Compiler/OpenBLAS/files/config.yaml @@ -0,0 +1,119 @@ +--- +# yamllint disable rule:line-length +format: 1 +OpenBLAS: + defaults: + group: Compiler + overlay: base + relstage: stable + systems: [rhel6, rhel7, rhel8] + urls: + - url: http://github.com/xianyi/$P/archive/v${V_PKG}.tar.gz + name: OpenBLAS-${V_PKG}.tar.gz + configure_args: + - -DCMAKE_BUILD_TYPE=Release + - -DDYNAMIC_ARCH=ON + docfiles: + - LICENSE + - README.md + + shasums: + OpenBLAS-0.2.9.tar.gz: e899c70b8771896655765f5c64c00c990f8dd0fe569e96788d8c971a23ecb22a + OpenBLAS-0.2.19.tar.gz: 9c40b5e4970f27c5f6911cb0a28aa26b6c83f17418b69f8e5a116bb983ca8557 + OpenBLAS-0.2.20.tar.gz: 5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394 + OpenBLAS-0.3.7.tar.gz: bde136122cef3dd6efe2de1c6f65c10955bbb0cc01a520c2342f5287c28f9379 + OpenBLAS-0.3.9.tar.gz: 17d4677264dfbc4433e97076220adc79b050e4f8a083ea3f853a53af253bc380 + OpenBLAS-0.3.10.tar.gz: 0484d275f87e9b8641ff2eecaa9df2830cbe276ac79ad80494822721de6e1693 + OpenBLAS-0.3.13.tar.gz: 79197543b17cc314b7e43f7a33148c308b0807cd6381ee77f77e15acf3e6459e + OpenBLAS-0.3.15.tar.gz: 30a99dec977594b387a17f49904523e6bc8dd88bd247266e83485803759e4bbe + OpenBLAS-0.3.20.tar.gz: 8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c + OpenBLAS-0.3.21.tar.gz: f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca + OpenBLAS-0.3.23.tar.gz: 5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114 + OpenBLAS-0.3.24.tar.gz: ceadc5065da97bd92404cac7254da66cc6eb192679cf1002098688978d4d5132 + + versions: + 0.3.28: + config: + group_deps: + compiler: + gcc: [12.3.0, 12.4.0, 13.3.0, 14.2.0] + build_requires: [cmake/3.23.2] + relstage: unstable + variants: + - systems: [rhel.*] + overlay: devel + - systems: [login.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI, Alps] + 0.3.24: + config: + group_deps: + compiler: + gcc: [12.3.0, 13.1.0, 13.2.0] + build_requires: [cmake/3.23.2] + relstage: unstable + overlay: devel + 0.3.23: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0] + build_requires: [cmake/3.23.2] + 0.3.21: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.3.0, 12.1.0] + build_requires: [cmake/3.23.2] + 0.3.20: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0] + 0.3.15: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.4.0, 9.3.0, 10.3.0] + 0.3.13: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0, 10.3.0] + 0.3.10;0.3.9: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.4.0, 9.3.0, 10.1.0] + 0.3.9: + variants: + - group_deps: + compiler: + gcc: [7.5.0, 8.4.0, 9.3.0, 10.1.0] + 0.3.7: + variants: + - group_deps: + compiler: + gcc: [7.4.0, 8.3.0, 9.2.0] + 0.2.20: + variants: + - group_deps: + compiler: + gcc: [5.5.0, 6.4.0, 7.3.0] + - group_deps: + compiler: + intel: [17.4] + relstage: deprecated + 0.2.19: + variants: + - group_deps: + gcc: [4.8.5, 4.9.4, 5.3.0, 5.4.0, 6.2.0, 6.3.0] + 0.2.9: + variants: + - group_deps: + compiler: + gcc: [4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.9.2, 6.1.0, 6.2.0] + - group_deps: + compiler: + intel: [15.3] + relstage: deprecated diff --git a/Compiler/OpenBLAS/files/variants.rhel6 b/Compiler/OpenBLAS/files/variants.rhel6 index 3070e47..7a8f953 100644 --- a/Compiler/OpenBLAS/files/variants.rhel6 +++ b/Compiler/OpenBLAS/files/variants.rhel6 @@ -20,4 +20,6 @@ OpenBLAS/0.3.15 stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} OpenBLAS/0.3.20 stable gcc/{7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0} -OpenBLAS/0.3.21 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.3.0,12.1.0} b:cmake/3.23.2 +OpenBLAS/0.3.21 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.3.0,12.1.0} b:cmake/3.23.2 + +OpenBLAS/0.3.23 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cmake/3.23.2 diff --git a/Compiler/flair-geoviewer/build b/Compiler/flair-geoviewer/build new file mode 100755 index 0000000..2641772 --- /dev/null +++ b/Compiler/flair-geoviewer/build @@ -0,0 +1,9 @@ +#!/usr/bin/env modbuild +pbuild::compile() { + make +} + +pbuild::install() { + make DESTDIR="${FLAIR_PREFIX}" install +} + diff --git a/Compiler/flair-geoviewer/files/config.yaml b/Compiler/flair-geoviewer/files/config.yaml new file mode 100644 index 0000000..b2a68e8 --- /dev/null +++ b/Compiler/flair-geoviewer/files/config.yaml @@ -0,0 +1,24 @@ +--- +# yamllint disable rule:line-length +format: 1 +flair-geoviewer: + defaults: + group: Compiler + overlay: base + relstage: unstable + compile_in_sourcetree: true + systems: [rhel7, rhel8, rhel9] + docfiles: [AUTHORS, LICENSE, NEWS, README] + urls: + - url: https://flair.web.cern.ch/flair/download/flair-geoviewer-3.3-1.tgz + shasums: + flair-geoviewer-3.3-1.tgz: 3c18747abac21907e90c3ed1759b73ca53c987f12216ba8ee9919a199c0dca26 + + versions: + 3.3.1: + variants: + - systems: [merlin-*, ra-*] + group_deps: + compiler: {gcc: [13.1.0]} + relstage: unstable + build_requires: ['flair/3.3.1', 'TclTk/8.6.9'] diff --git a/Compiler/flair-geoviewer/modulefile b/Compiler/flair-geoviewer/modulefile new file mode 100644 index 0000000..ae7ca95 --- /dev/null +++ b/Compiler/flair-geoviewer/modulefile @@ -0,0 +1,18 @@ +#%Module1.0 + +module-whatis "Flair by CERN: Advanced graphical user interface for particle simulation programs" +module-url "http://flair.web.cern.ch/flair/index.html" +module-license "[http://flair.web.cern.ch/flair/license.html](http://flair.web.cern.ch/flair/license.html)" +module-maintainer "Elsa Germann " +module-help " +/fleə(r)/ n [U,C] natural or instinctive ability to do something well, to select or recognize what is best, more useful, etc. + +flair is an advanced user friendly interface for several Monte Carlo codes. Originally it was developed for FLUKA, where its unique features strongly contributed to the success of both codes FLUKA and flair. From version 3 the interface was separated from the functionality permitting an easy integration of other simulation packages. + +The current line of development is to make flair a unique tool for performing calculations with the same input using FLUKA, Geant4, PENELOPE, and other simulations engines. +Presently is fully supporting the CERN FLUKA version and there is ongoing work to support: + +Moira a Geant4 based application, permitting the user to run with Geant4 FLUKA equivalent inputs with the same geometry, materials, scoring,... + +Other codes like MCNP, PHITS, PENELOPE could be added in the future. +" diff --git a/Compiler/flair/build b/Compiler/flair/build new file mode 100755 index 0000000..c841ef1 --- /dev/null +++ b/Compiler/flair/build @@ -0,0 +1,9 @@ +#!/usr/bin/env modbuild +pbuild::compile() { + make +} + +pbuild::install() { + make DESTDIR="${PREFIX}" install +} + diff --git a/Compiler/flair/files/config.yaml b/Compiler/flair/files/config.yaml new file mode 100644 index 0000000..4476db6 --- /dev/null +++ b/Compiler/flair/files/config.yaml @@ -0,0 +1,23 @@ +--- +# yamllint disable rule:line-length +format: 1 +flair: + defaults: + group: Compiler + overlay: base + relstage: unstable + compile_in_sourcetree: true + systems: [rhel7, rhel8, rhel9] + docfiles: [AUTHORS, LICENSE, NEWS, README] + urls: + - url: http://flair.web.cern.ch/flair/download/flair-3.3-1.tgz + shasums: + flair-3.3-1.tgz: 2bc9b02fd2d9ddb7eed96938314b9c73f0b6a844aa1af15728650eaf81e777bd + + versions: + 3.3.1: + variants: + - systems: [merlin-*, ra-*] + group_deps: + compiler: {gcc: [13.1.0]} + relstage: unstable diff --git a/Compiler/flair/modulefile b/Compiler/flair/modulefile new file mode 100644 index 0000000..ae7ca95 --- /dev/null +++ b/Compiler/flair/modulefile @@ -0,0 +1,18 @@ +#%Module1.0 + +module-whatis "Flair by CERN: Advanced graphical user interface for particle simulation programs" +module-url "http://flair.web.cern.ch/flair/index.html" +module-license "[http://flair.web.cern.ch/flair/license.html](http://flair.web.cern.ch/flair/license.html)" +module-maintainer "Elsa Germann " +module-help " +/fleə(r)/ n [U,C] natural or instinctive ability to do something well, to select or recognize what is best, more useful, etc. + +flair is an advanced user friendly interface for several Monte Carlo codes. Originally it was developed for FLUKA, where its unique features strongly contributed to the success of both codes FLUKA and flair. From version 3 the interface was separated from the functionality permitting an easy integration of other simulation packages. + +The current line of development is to make flair a unique tool for performing calculations with the same input using FLUKA, Geant4, PENELOPE, and other simulations engines. +Presently is fully supporting the CERN FLUKA version and there is ongoing work to support: + +Moira a Geant4 based application, permitting the user to run with Geant4 FLUKA equivalent inputs with the same geometry, materials, scoring,... + +Other codes like MCNP, PHITS, PENELOPE could be added in the future. +" diff --git a/Compiler/fluka4/README.md b/Compiler/fluka4/README.md index 8de9062..855ee91 100644 --- a/Compiler/fluka4/README.md +++ b/Compiler/fluka4/README.md @@ -21,7 +21,9 @@ GEOVIEWER_VERSION=3.2 GCC_VERSION=9.5.0 PYTHON_VERSION=3.9.10 TCLTK_VERSION=8.6.9 +```` +``` PREFIX="${PMODULES_ROOT}/Compiler/fluka4/${FLUKA4_VERSION}/gcc/${GCC_VERSION}" DISTFILES_DIR='/afs/psi.ch/software/Pmodules/distfiles' FLUKA_TAR="${DISTFILES_DIR}/fluka-4-${FLUKA4_VERSION}.x86-Linux-gfor${GCC_VERSION/.*}.tgz" diff --git a/Compiler/fluka4/build b/Compiler/fluka4/build new file mode 100755 index 0000000..d297185 --- /dev/null +++ b/Compiler/fluka4/build @@ -0,0 +1,16 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + cd src + make -j "${JOBS}" +} + +pbuild::install() { + : +} + diff --git a/Compiler/fluka4/build-brond b/Compiler/fluka4/build-brond new file mode 100755 index 0000000..92f7684 --- /dev/null +++ b/Compiler/fluka4/build-brond @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + : +} + +pbuild::install() { + : +} diff --git a/Compiler/fluka4/build-cendl b/Compiler/fluka4/build-cendl new file mode 100755 index 0000000..92f7684 --- /dev/null +++ b/Compiler/fluka4/build-cendl @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + : +} + +pbuild::install() { + : +} diff --git a/Compiler/fluka4/build-endf b/Compiler/fluka4/build-endf new file mode 100755 index 0000000..92f7684 --- /dev/null +++ b/Compiler/fluka4/build-endf @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + : +} + +pbuild::install() { + : +} diff --git a/Compiler/fluka4/build-flair b/Compiler/fluka4/build-flair new file mode 100755 index 0000000..02e6124 --- /dev/null +++ b/Compiler/fluka4/build-flair @@ -0,0 +1,15 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}/flair" + BUILD_DIR="${PREFIX}/flair" +} + +pbuild::compile(){ + make -j "${JOBS}" +} + +pbuild::install() { + : +} + diff --git a/Compiler/fluka4/build-flair-geoviewer b/Compiler/fluka4/build-flair-geoviewer new file mode 100755 index 0000000..87c7802 --- /dev/null +++ b/Compiler/fluka4/build-flair-geoviewer @@ -0,0 +1,15 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}/geoviewer" + BUILD_DIR="${PREFIX}/geoviewer" +} + +pbuild::compile(){ + make -j "${JOBS}" +} + +pbuild::install() { + make DESTDIR="${PREFIX}/flair" install +} + diff --git a/Compiler/fluka4/build-jeff b/Compiler/fluka4/build-jeff new file mode 100755 index 0000000..92f7684 --- /dev/null +++ b/Compiler/fluka4/build-jeff @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + : +} + +pbuild::install() { + : +} diff --git a/Compiler/fluka4/build-jendl b/Compiler/fluka4/build-jendl new file mode 100755 index 0000000..92f7684 --- /dev/null +++ b/Compiler/fluka4/build-jendl @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::pre_prep(){ + SRC_DIR="${PREFIX}" + BUILD_DIR="${PREFIX}" +} + +pbuild::compile(){ + : +} + +pbuild::install() { + : +} diff --git a/Compiler/fluka4/files/config.yaml b/Compiler/fluka4/files/config.yaml new file mode 100644 index 0000000..7b55c27 --- /dev/null +++ b/Compiler/fluka4/files/config.yaml @@ -0,0 +1,242 @@ +--- +# yamllint disable rule:line-length +format: 1 +fluka4: + defaults: + group: Compiler + overlay: base + relstage: unstable + compile_in_sourcetree: true + systems: [.*] + download_dir: /afs/psi.ch/software/Pmodules/protected/fluka + urls: + - url: none + name: fluka-4-${V_PKG}.x86-Linux-gfor9.tgz + shasums: + fluka-4-4.0.x86-Linux-gfor9.tgz: bcc303b96026b91f6d88d7a5ec274e31619562833330be93a992cd3c7e511eba + + versions: + 4.0: + config: + group_deps: + compiler: {gcc: [9.5.0]} + relstage: unstable + build_requires: [] + runtime_deps: ['TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10'] + sub_packages: + - name: flair + version: 3.3-1 + build_args: + - --disable-cleanup + - -f + - name: flair-geoviewer + version: 3.3-1 + build_args: + - --disable-cleanup + - -f + - name: jeff + version: 3.3-1-1 + build_args: + - --disable-cleanup + - -f + - name: endf + version: viii0-1.0 + build_args: + - --disable-cleanup + - -f + - name: jendl + version: 4.0u-1.0 + build_args: + - --disable-cleanup + - -f + - name: cendl + version: 31-1.0 + build_args: + - --disable-cleanup + - -f + - name: brond + version: 3.1-1.0 + build_args: + - --disable-cleanup + - -f + + 4.0_beta: + config: + group_deps: + compiler: {gcc: [9.5.0]} + relstage: unstable + build_requires: [] + runtime_deps: ['TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10'] + sub_packages: + - name: flair + version: 3.x-3.5 + build_args: + - --disable-cleanup + - -f + - name: flair-geoviewer + version: 3.x-3.5 + build_args: + - --disable-cleanup + - -f + - name: jeff + version: 3.3-1-1 + build_args: + - --disable-cleanup + - -f + - name: endf + version: viii0-1.0 + build_args: + - --disable-cleanup + - -f + - name: jendl + version: 4.0u-1.0 + build_args: + - --disable-cleanup + - -f + - name: cendl + version: 31-1.0 + build_args: + - --disable-cleanup + - -f + - name: brond + version: 3.1-1.0 + build_args: + - --disable-cleanup + - -f + + 4.1_beta1: + config: + group: Tools + build_requires: [] + runtime_deps: ['gcc/9.5.0', 'TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10'] + sub_packages: + - name: flair + version: 3.x-5 + build_args: + - --disable-cleanup + - -f + - name: flair-geoviewer + version: 3.x-5 + build_args: + - --disable-cleanup + - -f + - name: jeff + version: 3.3-1-1 + build_args: + - --disable-cleanup + - -f + - name: endf + version: viii0-1.0 + build_args: + - --disable-cleanup + - -f + - name: jendl + version: 4.0u-1.0 + build_args: + - --disable-cleanup + - -f + - name: cendl + version: 31-1.0 + build_args: + - --disable-cleanup + - -f + - name: brond + version: 3.1-1.0 + build_args: + - --disable-cleanup + - -f + +jeff: + type: sub_package + defaults: + urls: + - url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tar.gz + strip_dirs: 0 + shasums: + fluka_pw_jeff-3.3-1-1.tar.gz: 48810cab92bc79b241b306390f88b5fc1333363e85fdd0d9317263ba8e29ed8b + versions: + 3.3-1-1: + +endf: + defaults: + urls: + - url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz + strip_dirs: 0 + shasums: + fluka_pw_endf-viii0-1.0.tgz: e26433c9f548c4477b5c47a1929d33ce4a823fa326703d3a52dfa9161f9ae1b9 + versions: + viii0-1.0: + +jendl: + defaults: + urls: + - url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz + strip_dirs: 0 + shasums: + fluka_pw_jendl-4.0u-1.0.tgz: 21d5e2676ae26946df98869bd1d95f4f34edb53488fb40e5c1a8ef0c743f5f6e + versions: + 4.0u-1.0: + +cendl: + defaults: + urls: + - url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz + strip_dirs: 0 + shasums: + fluka_pw_cendl-31-1.0.tgz: d64916e35bfa6337463d01b3596ccd57b8f8b5c2e8879138ef7be14aff2b49d3 + versions: + 31-1.0: + +brond: + defaults: + urls: + - url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz + strip_dirs: 0 + shasums: + fluka_pw_brond-3.1-1.0.tgz: c88ba7cde8ccf1c59b49e1138cc06cfd0b2b84f50a67d1dd9a29f104633b8a72 + versions: + 3.1-1.0: + +flair: + defaults: + urls: + - url: http://flair.web.cern.ch/flair/download/flair-$V.tgz + shasums: + flair-3.3-1.tgz: 2bc9b02fd2d9ddb7eed96938314b9c73f0b6a844aa1af15728650eaf81e777bd + + versions: + 3.3-1: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10'] + 3.x-3.5: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10'] + urls: + - url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-3.x-3.5.tgz + 3.x-5: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10'] + urls: + - url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-3.x-5.tgz + +flair-geoviewer: + defaults: + urls: + - url: https://flair.web.cern.ch/flair/download/flair-geoviewer-$V.tgz + shasums: + flair-geoviewer-3.3-1.tgz: 3c18747abac21907e90c3ed1759b73ca53c987f12216ba8ee9919a199c0dca26 + + versions: + 3.3-1: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9'] + 3.x-3.5: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9'] + urls: + - url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-geoviewer-3.x-3.5.tgz + 3.x-5: + config: + build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9'] + urls: + - url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-geoviewer-3.x-5.tgz diff --git a/Compiler/fluka4/modulefiles b/Compiler/fluka4/modulefile similarity index 100% rename from Compiler/fluka4/modulefiles rename to Compiler/fluka4/modulefile diff --git a/Compiler/gsl/files/variants.rhel6 b/Compiler/gsl/files/variants.rhel6 index 415e68f..d3d44c3 100644 --- a/Compiler/gsl/files/variants.rhel6 +++ b/Compiler/gsl/files/variants.rhel6 @@ -16,4 +16,4 @@ gsl/2.5 deprecated intel/19.4 gsl/2.6 stable gcc/{7.4.0,7.5.0,8.3.0,8.4.0,8.5.0,9.1.0,9.2.0,9.3.0,9.5.0,10.1.0,10.2.0,10.3.0,11.2.0,12.1.0} -gsl/2.7 stable gcc/{7.5.0,8.4.0,8.5.0,9.3.0,9.5.0,10.3.0,10.4.0,11.3.0,12.1.0} +gsl/2.7 stable gcc/{7.5.0,8.4.0,8.5.0,9.3.0,9.5.0,10.3.0,10.4.0,11.3.0,11.4.0,12.1.0,12.3.0,13.1.0} diff --git a/Compiler/hdf5_serial/build-yaml b/Compiler/hdf5_serial/build-yaml new file mode 100755 index 0000000..79ce963 --- /dev/null +++ b/Compiler/hdf5_serial/build-yaml @@ -0,0 +1,52 @@ +#!/usr/bin/env modbuild + +pbuild::install_docfiles ACKNOWLEDGMENTS +pbuild::install_docfiles COPYING +#pbuild::install_docfiles MANIFEST +pbuild::install_docfiles README.md + +pbuild::pre_configure() { + pbuild::add_configure_args "--enable-shared" + pbuild::add_configure_args "--enable-cxx" + pbuild::add_configure_args "--enable-unsupported" + pbuild::add_configure_args "--enable-threadsafe" + pbuild::add_configure_args "--with-pic" + case "${COMPILER}" in + clang-macos ) + # we do not have Fortran in Xcode + pbuild::add_configure_args "--disable-fortran" + if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then + pbuild::add_configure_args "--disable-fortran2003" + fi + ;; + pgi ) + # PGI uses GCC's include files, some object files and + # the STL implementation! + # The PGI C pre-processor is broken and doesn't work + # for HDF5. We use the pre-processor of the underlying + # GCC... + # This is a bit hackish! + # + # The following eval sets GCCDIR! Which is something + # like: + # /opt/psi/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 + # + eval $(pgcc -show 2>/dev/null | \ + awk '/^GCCDIR[[:space:]]*=/{gsub(/[[:space:]]/,""); print $0}') + pbuild::add_configure_args "CPP=${GCCDIR%%/..*}/cpp" + pbuild::add_configure_args "CFLAGS=-fPIC" + pbuild::add_configure_args "CXXFLAGS=-fPIC" + pbuild::add_configure_args "FCFLAGS=-fPIC" + pbuild::add_configure_args "--enable-fortran" + if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then + pbuild::add_configure_args "--enable-fortran2003" + fi + ;; + * ) + pbuild::add_configure_args "--enable-fortran" + if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then + pbuild::add_configure_args "--enable-fortran2003" + fi + ;; + esac +} diff --git a/Compiler/hdf5_serial/files/config.yaml b/Compiler/hdf5_serial/files/config.yaml new file mode 100644 index 0000000..4026415 --- /dev/null +++ b/Compiler/hdf5_serial/files/config.yaml @@ -0,0 +1,214 @@ +--- +# yamllint disable rule:line-length +format: 1 +hdf5_serial: + defaults: + group: Compiler + overlay: base + relstage: stable + systems: [rhel7, rhel8, rhel9] + urls: + - url: https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${V_MAJOR}.${V_MINOR}/hdf5-$V/src/hdf5-$V.tar.bz2 + shasums: + hdf5-1.8.10-patch1.tar.bz2: 292afb3615ad9e68f4d5d18ebb11e4a73f2aece39f2da3875a457ff1e109fc41 + hdf5-1.8.12.tar.bz2: 10a369a4fc207bb09245f57c758e587420e06dfc0e445e337a58b0848b75a949 + hdf5-1.8.13.tar.bz2: c2f5a412107aba6f99fd7a4a9db6ce5f5fc8171ec931472784e5839d26aa17ef + hdf5-1.8.14.tar.bz2: 53722cb9f5977af2908f92fc1a3f8c597800a5cb448cfe5c75060d6335bb9bab + hdf5-1.8.15-patch1.tar.bz2: a5afc630c4443547fff15e9637b5b10404adbed4c00206d89517d32d6668fb32 + hdf5-1.8.15.1.tar.bz2: 289307fd70cef6715e0a28371635c8038153a4f25069319e34b0bc675a23e8ed + hdf5-1.8.16.tar.bz2: 13aaae5ba10b70749ee1718816a4b4bfead897c2fcb72c24176e759aec4598c6 + hdf5-1.8.17.tar.bz2: fc35dd8fd8d398de6b525b27cc111c21fc79795ad6db1b1f12cb15ed1ee8486a + hdf5-1.8.18.tar.bz2: 01c6deadf4211f86922400da82c7a8b5b50dc8fc1ce0b5912de3066af316a48c + hdf5-1.8.19.tar.bz2: 59c03816105d57990329537ad1049ba22c2b8afe1890085f0c022b75f1727238 + hdf5-1.8.20.tar.bz2: a4f2db7e0a078aa324f64e0216a80731731f73025367fa94d158c9b1d3fbdf6f + hdf5-1.8.21.tar.bz2: e5b1b1dee44a64b795a91c3321ab7196d9e0871fe50d42969761794e3899f40d + hdf5-1.10.0.tar.bz2: 31ff70dc7c7317066ab3bda3eec4498a8b099c69c1271b008ed3df388e743d28 + hdf5-1.10.1.tar.bz2: 9c5ce1e33d2463fb1a42dd04daacbc22104e57676e2204e3d66b1ef54b88ebf2 + hdf5-1.10.2.tar.bz2: 1cad5b7bfdf128dfc53cd16fba48f6e7ae4e93c75c371d9ec8dfc4df0c1fcb71 + hdf5-1.10.3.tar.bz2: c65cdcce4724a57fd3f8da9f0d109b497be30092acb9fac634d1291190d905a9 + hdf5-1.10.4.tar.bz2: 1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df + hdf5-1.10.5.tar.bz2: 68d6ea8843d2a106ec6a7828564c1689c7a85714a35d8efafa2fee20ca366f44 + hdf5-1.10.6.tar.bz2: 09d6301901685201bb272a73e21c98f2bf7e044765107200b01089104a47c3bd + hdf5-1.10.6_slurm.tar.bz2: d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3 + hdf5-1.10.7.tar.bz2: 02018fac7e5efc496d9539a303cfb41924a5dadffab05df9812096e273efa55e + hdf5-1.10.8.tar.bz2: 66ec544b195a4cb9f6ffed034fd82e52429d6112747c2996ab69853f606e546b + hdf5-1.10.11.tar.bz2: 0afc77da5c46217709475bbefbca91c0cb6f1ea628ccd8c36196cf6c5a4de304 + hdf5-1.12.0.tar.bz2: 97906268640a6e9ce0cde703d5a71c9ac3092eded729591279bf2e3ca9765f61 + hdf5-1.12.2.tar.bz2: 3016ea56a175d2ca7f2568c8016420f7a2aad8f95e214fe7fa5485f4b80fbe51 + hdf5-1.13.1.tar.bz2: e16973ec893e2d5aa9c8dc73e196db9b99a605578e7317b421c713936f8bf57d + + versions: + 1.8.12: + config: + group_deps: + compiler: + gcc: [4.7.4, 4.8.3, 4.8.4, 4.9.2] + intel: [15.2] + relstage: deprecated + + 1.8.13: + config: + group_deps: + compiler: + gcc: [4.7.4] + relstage: deprecated + + 1.8.14: + config: + group_deps: + compiler: + gcc: [4.7.4, 4.8.5, 4.9.3] + intel: [15.2] + relstage: deprecated + + 1.8.15-patch1: + config: + group_deps: + compiler: + gcc: [5.2.0] + relstage: deprecated + + 1.8.16: + config: + group_deps: + compiler: + gcc: [4.7.4, 5.3.0, 6.1.0] + intel: [15.3, 16.2] + relstage: deprecated + + 1.8.17: + config: + group_deps: + compiler: + gcc: [4.7.4, 4.9.4, 5.4.0, 6.2.0] + intel: [16.3] + relstage: deprecated + + 1.8.18: + config: + group_deps: + compiler: + gcc: [4.8.5, 5.5.0, 6.3.0, 6.4.0, 7.2.0, 7.3.0] + relstage: deprecated + + 1.8.19: + config: + group_deps: + compiler: + gcc: [4.8.5] + relstage: deprecated + + 1.8.20: + config: + group_deps: + compiler: + gcc: [4.8.5, 8.2.0] + intel: [18.4] + relstage: deprecated + + 1.8.21: + config: + group_deps: + compiler: + gcc: [5.5.0, 6.5.0, 7.4.0, 8.3.0] + pgi: [18.5] + relstage: deprecated + + 1.10.0: + config: + group_deps: + compiler: + gcc: [6.1.0] + intel: [16.3] + relstage: deprecated + + 1.10.1: + config: + group_deps: + compiler: + gcc: [4.8.5, 4.9.4, 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0] + intel: [17.1, 17.4] + pgi: [17.3, 17.7] + relstage: deprecated + + 1.10.2: + config: + group_deps: + compiler: + gcc: [5.5.0] + intel: [18.2, 18.3] + relstage: deprecated + + 1.10.3: + config: + group_deps: + compiler: + gcc: [4.8.5] + relstage: deprecated + + 1.10.4: + config: + group_deps: + compiler: + gcc: [7.3.0] + relstage: deprecated + + 1.10.5: + config: + group_deps: + compiler: + gcc: [5.5.0] + intel: [19.3] + relstage: deprecated + + 1.10.6: + config: + group_deps: + compiler: + gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0] + relstage: stable + + 1.10.7: + config: + group_deps: + compiler: + gcc: [10.2.0, 10.3.0, 11.2.0] + relstage: stable + + 1.10.8: + config: + group_deps: + compiler: + gcc: [6.5.0, 7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0] + relstage: stable + + 1.10.11: + config: + group_deps: + compiler: + gcc: [10.4.0] + relstage: unstable + + 1.12.0: + config: + group_deps: + compiler: + gcc: [10.2.0] + relstage: stable + + 1.12.2: + config: + group_deps: + compiler: + gcc: [6.5.0, 7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0] + relstage: stable + + 1.12.3: + config: + group_deps: + compiler: + gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.3.0, 12.1.0] + relstage: unstable + urls: + - url: https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${V_MAJOR}.${V_MINOR}/hdf5-$V/src/hdf5-$V.tar.bz2 + strip_dirs: 2 diff --git a/Compiler/hdf5_serial/files/variants.yaml b/Compiler/hdf5_serial/files/variants.yaml deleted file mode 100644 index 1a52a81..0000000 --- a/Compiler/hdf5_serial/files/variants.yaml +++ /dev/null @@ -1,109 +0,0 @@ -overlay: base -relstage: stable - -hdf5_serial/1.8.12: - - with: gcc/{4.7.4,4.8.3,4.8.4,4.9.2} - relstage: deprecated - - with: intel/15.2 - relstage: deprecated - -hdf5_serial/1.8.13: - - with: gcc/4.7.4 - relstage: deprecated - -hdf5_serial/1.8.14: - - with: gcc/{4.7.4,4.8.5,4.9.3} - relstage: deprecated - - with: intel/15.2 - relstage: deprecated - -hdf5_serial/1.8.15-patch1: - - with: gcc/5.2.0 - relstage: deprecated - -hdf5_serial/1.8.16: - - with: gcc/{4.7.4,5.3.0,6.1.0} - relstage: deprecated - - with: intel/{15.3,16.2} - relstage: deprecated - -hdf5_serial/1.8.17: - - with: gcc/{4.7.4,4.9.4,5.4.0,6.2.0} - relstage: deprecated - - with: intel/16.3 - relstage: deprecated - -hdf5_serial/1.8.18: - - with: gcc/{4.8.5,5.5.0,6.3.0,6.4.0,7.2.0,7.3.0} - relstage: deprecated - -hdf5_serial/1.8.19: - - with: gcc/4.8.5 - relstage: deprecated - -hdf5_serial/1.8.20: - - with: gcc/{4.8.5,8.2.0} - relstage: deprecated - - with: intel/18.4 - relstage: deprecated - -hdf5_serial/1.8.21: - - with: gcc/{5.5.0,6.5.0,7.4.0,8.3.0} - relstage: deprecated - - with: pgi/18.5 - relstage: deprecated - -hdf5_serial/1.10.0: - - with: gcc/6.1.0 - relstage: deprecated - - with: intel/16.3 - relstage: deprecated - -hdf5_serial/1.10.1: - - with: gcc/{4.8.5,4.9.4,5.4.0,5.5.0,6.3.0,6.4.0,7.1.0,7.2.0,7.3.0} - relstage: deprecated - - with: intel/{17.1,17.4} - relstage: deprecated - - with: pgi/{17.3,17.7} - relstage: deprecated - -hdf5_serial/1.10.2: - - with: gcc/5.5.0 - relstage: deprecated - - with: intel/{18.2,18.3} - relstage: deprecated - -hdf5_serial/1.10.3: - - with: gcc/4.8.5 - relstage: deprecated - -hdf5_serial/1.10.4: - - with: gcc/7.3.0 - relstage: deprecated - -hdf5_serial/1.10.5: - - with: gcc/5.5.0 - relstage: deprecated - - with: intel/19.3 - relstage: deprecated - -hdf5_serial/1.10.6: - - with: gcc/{7.5.0,8.4.0,9.3.0,10.2.0} - relstage: stable - -hdf5_serial/1.10.7: - - with: gcc/{10.2.0,10.3.0,11.2.0} - relstage: stable - -hdf5_serial/1.10.8: - - with: gcc/{6.5.0,7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0} - relstage: stable - -hdf5_serial/1.12.0: - - with: gcc/10.2.0 - relstage: stable - -hdf5_serial/1.12.2: - - with: gcc/{6.5.0,7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0} - relstage: stable - diff --git a/Compiler/mpich/build b/Compiler/mpich/build index 3a4324a..8071064 100755 --- a/Compiler/mpich/build +++ b/Compiler/mpich/build @@ -1,28 +1,70 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz" -pbuild::add_to_group 'Compiler' -pbuild::install_docfiles 'COPYRIGHT' 'README' - -module use System - pbuild::pre_configure() { - unset F90 - pbuild::add_configure_args "--enable-cxx" - pbuild::add_configure_args "--enable-fortran" - if pbuild::use_flag merlin; then - MXM_DIR='/opt/mellanox/mxm/' - pbuild::add_configure_args "--with-device=ch3:nemesis:mxm" - pbuild::add_configure_args "--with-mxm=${MXM_DIR}" - pbuild::add_configure_args "--without-x" - #pbuild::add_configure_args "--with-slurm-include=/usr/include/slurm" - #pbuild::add_configure_args "--with-slurm-lib=/usr/lib64" - #pbuild::add_configure_args "--with-pmi=slurm" - #pbuild::add_configure_args "--with-pm=no" - pbuild::add_configure_args "--enable-gl=no" + unset F90 + + pbuild::add_configure_args "--enable-shared" + pbuild::add_configure_args "--enable-static" + + if [[ -v CUDA_VERSION ]]; then + std::info "Enabling CUDA ${CUDA_VERSION}." + pbuild::add_configure_args "--with-cuda=${CUDA_HOME}" + fi + + if [[ -v HWLOC_VERSION ]]; then + unset HWLOC_VERSION + std::info "Enabling external hwloc ${HWLOC_PREFIX}." + pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" + else + pbuild::add_configure_args "--with-hwloc=embedded" + fi + + if [[ -v PMIX_VERSION ]]; then + std::info "Enabling PMIX ${PMIX_VERSION}." + unset PMIX_VERSION + pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" + pbuild::add_configure_args "--with-pmi=pmix" + fi + + if pbuild::use_flag merlin7 && [[ ! -v LIBFABRIC_VERSION ]]; then + if pkg-config --exists libfabric; then + std::info "Get LIBFABRIC_VERSION via pkg-config" + LIBFABRIC_PREFIX=$(pkg-config --variable=prefix libfabric) + LIBFABRIC_VERSION="$(LIBFABRIC_PREFIX##*/)" + fi fi - if [[ "${COMPILER}" == 'gcc' ]] && (( ${COMPILER_VERSION%.*.*} == 10 )); then - pbuild::add_configure_args "FFLAGS=-fallow-argument-mismatch" + if [[ -v LIBFABRIC_VERSION ]]; then + std::info "Enabling libfabric ${LIBFABRIC_VERSION}." + if (( V_MAJOR < 4 )); then + pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}" + fi + pbuild::add_configure_args "--with-libfabric=${LIBFABRIC_PREFIX}" + fi + + if [[ -v UCX_VERSION ]]; then + std::info "Enabling UCX ${UCX_VERSION}." + pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}" + fi + + if [[ -v INTEL_VERSION ]]; then + pbuild::add_configure_args "CC=icc" + pbuild::add_configure_args "CXX=icpc" + pbuild::add_configure_args "FC=ifort" + pbuild::add_configure_args "F90=ifort" + pbuild::add_configure_args "F77=ifort" + pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0" + fi + + if pbuild::use_flag slurm || \ + pbuild::use_flag merlin6 || \ + pbuild::use_flag merlin7; then + std::info "Enabling SLURM." + pbuild::add_configure_args "--with-slurm" fi } +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Compiler/mpich/files/config.yaml b/Compiler/mpich/files/config.yaml new file mode 100644 index 0000000..f54042b --- /dev/null +++ b/Compiler/mpich/files/config.yaml @@ -0,0 +1,46 @@ +--- +# yamllint disable rule:line-length +format: 1 +mpich: + defaults: + group: Compiler + overlay: base + relstage: stable + configure_args: + - --enable-cxx + - --enable-fortran + docfiles: [COPYRIGHT, README] + urls: + - url: http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz + shasums: + mpich-3.3.2.tar.gz: 4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9 + mpich-4.2.3.tar.gz: 7a019180c51d1738ad9c5d8d452314de65e828ee240bcb2d1f80de9a65be88a8 + + versions: + 4.2.3: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: unstable + overlay: Alps + use_overlays: [PSI] + use_flags: [merlin7, slurm] + group_deps: + compiler: {gcc: [12.3.0]} + build_requires: [hwloc/2.11.1, libfabric/1.15.2.0, patchelf/0.14.5] + runtime_deps: [cuda/12.2.0] + configure_args+: + - --with-pm=hydra,gforker + 3.3.2: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: unstable + overlay: Alps + use_overlays: [PSI] + use_flags: [merlin7, slurm] + group_deps: + compiler: {gcc: [8.4.0]} + build_requires: [libfabric/1.15.2.0, patchelf/0.14.5] + patch_files: + - patch/mpich-v3.3.2.patch + configure_args+: + - --with-device=ch3:nemesis:ofi diff --git a/Compiler/mpich/patch/mpich-v3.3.2.patch b/Compiler/mpich/patch/mpich-v3.3.2.patch new file mode 100644 index 0000000..559239b --- /dev/null +++ b/Compiler/mpich/patch/mpich-v3.3.2.patch @@ -0,0 +1,13 @@ +diff --git a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c +index 9b35471f3..7b5dd782f 100644 +--- a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c ++++ b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c +@@ -26,7 +26,7 @@ static struct HYD_node *global_node_list = NULL; + #if defined(HAVE_LIBSLURM) + static HYD_status list_to_nodes(char *str) + { +- hostlist_t hostlist; ++ hostlist_t *hostlist; + char *host; + int k = 0; + HYD_status status = HYD_SUCCESS; diff --git a/Compiler/openmpi/build b/Compiler/openmpi/build index ab75d48..ba72c49 100755 --- a/Compiler/openmpi/build +++ b/Compiler/openmpi/build @@ -1,110 +1,156 @@ #!/usr/bin/env modbuild -# pbuild::set_download_url \ - # "http://www.open-mpi.org/software/ompi/v${V_MAJOR}.${V_MINOR}/downloads/openmpi-${V_PKG}.tar.bz2" - -pbuild::set_download_url \ - "https://download.open-mpi.org/release/open-mpi/v${V_MAJOR}.${V_MINOR}/openmpi-${V_PKG}.tar.bz2" - -pbuild::set_sha256sum "openmpi-3.1.2.tar.bz2:c654ed847f34a278c52a15c98add40402b4a90f0c540779f1ae6c489af8a76c5" - -pbuild::add_to_group 'Compiler' -pbuild::install_docfiles 'AUTHORS' 'LICENSE' 'NEWS' 'README' - - pbuild::pre_configure() { - pbuild::add_configure_args "--prefix=${PREFIX}" - pbuild::add_configure_args "--enable-mpi-cxx" - pbuild::add_configure_args "--enable-mpi-cxx-seek" - pbuild::add_configure_args "--enable-orterun-prefix-by-default" - pbuild::add_configure_args "--enable-shared" - pbuild::add_configure_args "--enable-static" - pbuild::add_configure_args "--with-slurm=yes" - - if [[ -n "${CUDA_VERSION}" ]]; then - pbuild::add_configure_args "--with-cuda=${CUDA_HOME}" + if (( V_MAJOR < 5 )); then + pbuild::add_configure_args "--enable-mpi-cxx" + pbuild::add_configure_args "--enable-mpi-cxx-seek" + pbuild::add_configure_args "--enable-orterun-prefix-by-default" + fi + if (( V_MAJOR < 5 )) && pbuild::use_flag 'slurm'; then + pbuild::add_configure_args "--with-pmi=/usr" + pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/slurmpmi" + fi + if (( V_MAJOR < 5 )) && pbuild::use_flag 'ra'; then + pbuild::add_configure_args "--with-pmi=/usr" + pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/slurm" + fi + if (( V_MAJOR >= 5 )); then + pbuild::add_configure_args "--enable-prte-prefix-by-default" + fi + if (( V_MAJOR < 4 )); then + pbuild::add_configure_args "--enable-mpi-f90" + pbuild::add_configure_args "--enable-mpi-profile" + pbuild::add_configure_args "--enable-smp-locks" + fi + if (( V_MAJOR >= 4 )); then + pbuild::add_configure_args "--enable-mpi-fortran" + fi + if (( V_MAJOR == 4 )); then + pbuild::add_configure_args "--without-verbs" fi - if [[ -n "${HWLOC_VERSION}" ]]; then + if [[ -v CUDA_VERSION ]]; then + std::info "Enabling CUDA ${CUDA_VERSION}." + pbuild::add_configure_args "--with-cuda=${CUDA_HOME}" + if (( V_MAJOR >= 5 )); then + pbuild::add_configure_args "--with-cuda-libdir=${CUDA_HOME}/lib64/stubs" + fi + fi + + if [[ -v HWLOC_VERSION ]]; then unset HWLOC_VERSION + std::info "Enabling external hwloc ${HWLOC_PREFIX}." pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" else pbuild::add_configure_args "--with-hwloc=internal" fi - if [[ -n "${LIBEVENT_VERSION}" ]]; then + if [[ -v LIBEVENT_VERSION ]]; then + std::info "Enabling libevent ${LIBEVENT_VERSION}." pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" fi - if [[ -n "${PMIX_VERSION}" ]]; then + if [[ -v PMIX_VERSION ]]; then + std::info "Enabling PMIX ${PMIX_VERSION}." unset PMIX_VERSION pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" fi - if [[ -n "${LIBFABRIC_VERSION}" ]]; then + if pbuild::use_flag merlin7 && [[ ! -v LIBFABRIC_VERSION ]]; then + if pkg-config --exists libfabric; then + std::info "Get LIBFABRIC_VERSION via pkg-config" + LIBFABRIC_PREFIX=$(pkg-config --variable=prefix libfabric) + LIBFABRIC_VERSION="$(LIBFABRIC_PREFIX##*/)" + fi + fi + if [[ -v LIBFABRIC_VERSION ]]; then + std::info "Enabling libfabric ${LIBFABRIC_VERSION}." pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}" fi - - if [[ -n "${UCX_VERSION}" ]]; then + + if [[ -v UCX_VERSION ]]; then + std::info "Enabling UCX ${UCX_VERSION}." pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}" fi - if [[ -n "${INTEL_VERSION}" ]]; then + if [[ -v INTEL_VERSION ]]; then pbuild::add_configure_args "CC=icc" pbuild::add_configure_args "CXX=icpc" pbuild::add_configure_args "FC=ifort" pbuild::add_configure_args "F90=ifort" pbuild::add_configure_args "F77=ifort" - pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0" + # -O0 was probably added for enabling debugging: + # pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0" + pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel" fi - if pbuild::use_flag slurm || pbuild::use_flag dgx || pbuild::use_flag merlin6; then - pbuild::add_configure_args "--with-gpfs=/usr/lpp/mmfs" - pbuild::add_configure_args "--with-pmi" - # pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/" - - if pbuild::use_flag "libpmix"; then - pbuild::add_configure_args "--enable-install-libpmix" - fi - fi - - local version - (( version = (${V_MAJOR} * 100 + ${V_MINOR}) * 100 + V_PATCHLVL )) - if (( V_MAJOR < 4 )); then - pbuild::add_configure_args "--enable-mpi-f90" - pbuild::add_configure_args "--enable-mpi-profile" - pbuild::add_configure_args "--enable-smp-locks" - elif (( V_MAJOR >= 4 )); then - pbuild::add_configure_args "--enable-mpi-fortran" - pbuild::add_configure_args "--without-verbs" + if pbuild::use_flag slurm || \ + pbuild::use_flag dgx || \ + pbuild::use_flag merlin6 || \ + pbuild::use_flag merlin7; then + std::info "Enabling SLURM." + pbuild::add_configure_args "--with-slurm=yes" fi + if pbuild::use_flag dgx || pbuild::use_flag merlin6 || pbuild::use_flag "gpfs"; then + std::info "Enabling GPFS." + pbuild::add_configure_args "--with-gpfs=/usr/lpp/mmfs" + fi + if pbuild::use_flag "libpmix"; then + std::info "Enabling install of libpmix." + pbuild::add_configure_args "--enable-install-libpmix" + fi +} + +pbuild::post_install_no_slurm() { + if ! pbuild::use_flag slurm && \ + ! pbuild::use_flag dgx && \ + ! pbuild::use_flag merlin6 && \ + ! pbuild::use_flag merlin7; then + mkdir -p "${PREFIX}/lib/fallback" + local -r binary=$(ls "${PREFIX}"/lib/libmpi.so.*.*.*) + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuc[mpst].so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuct_ib.so.0' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libnuma.so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libibverbs.so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/librdmacm.so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi.so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so' + pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so' + fi } pbuild::post_install() { - if ! pbuild::use_flag slurm && ! pbuild::use_flag dgx && ! pbuild::use_flag merlin6; then - mkdir -p "${PREFIX}/lib/fallback" - local -r binary=$(ls "${PREFIX}"/lib/libmpi.so.*.*.*) - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuc[mpst].so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuct_ib.so.0' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libnuma.so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libibverbs.so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/librdmacm.so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi.so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so' - pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so' + if [[ -v CUDA_VERSION ]]; then + grep -qxF "opal_warn_on_missing_libcuda = 0" ${PREFIX}/etc/openmpi-mca-params.conf || \ + echo "opal_warn_on_missing_libcuda = 0" >> ${PREFIX}/etc/openmpi-mca-params.conf + if (( V_MAJOR == 5 )); then + grep -qxF "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" ${PREFIX}/etc/openmpi-mca-params.conf || \ + echo "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" >> ${PREFIX}/etc/openmpi-mca-params.conf + grep -qxF "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" ${PREFIX}/etc/prte-mca-params.conf || \ + echo "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" >> ${PREFIX}/etc/prte-mca-params.conf + fi fi - if [[ -n "${CUDA_VERSION}" ]]; then - echo "opal_warn_on_missing_libcuda = 0" >> ${PREFIX}/etc/openmpi-mca-params.conf - fi - - for FILE in $(find $PREFIX -type f \( ! -name "*.a" -and ! -name "*.mod" \) -exec grep -IL . "{}" \;) - do - OLD_RPATH=$(objdump -a -x $FILE | grep RPATH | awk '{print $2}') - NEW_RPATH=$(echo $OLD_RPATH | sed 's/:\/usr\/lib64:/:/g') - if [[ "${OLD_RPATH}" != "${NEW_RPATH}" ]]; then - patchelf --force-rpath --set-rpath "${NEW_RPATH}" "${FILE}" - fi - done + local fname='' + local old_rpath='' + local new_rpath='' + # remove '/usr/lib64' from RPATH/RUNPATH + while read fname; do + old_rpath=$(objdump -x "${fname}" | awk '/RPATH|RUNPATH/ {print $2}') + new_rpath=$(echo "${old_rpath}" | sed 's/:\/usr\/lib64:/:/g') + if [[ "${old_rpath}" != "${new_rpath}" ]]; then + patchelf \ + --force-rpath \ + --set-rpath "${new_rpath}" \ + "${fname}" + fi + done < <(find "${PREFIX}" -type f \( ! -name "*.a" -and ! -name "*.mod" \) \ + -exec grep -IL . "{}" \;) } + +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Compiler/openmpi/files/config.yaml b/Compiler/openmpi/files/config.yaml new file mode 100644 index 0000000..a0e6909 --- /dev/null +++ b/Compiler/openmpi/files/config.yaml @@ -0,0 +1,321 @@ +--- +# yamllint disable rule:line-length +format: 1 +openmpi: + defaults: + group: Compiler + overlay: base + relstage: stable + configure_args: + - --enable-shared + docfiles: [AUTHORS, LICENSE, NEWS, README] + urls: + - url: https://download.open-mpi.org/release/open-mpi/v${V_MAJOR}.${V_MINOR}/openmpi-${V_PKG}.tar.bz2 + shasums: + openmpi-1.10.0.tar.bz2: 26b432ce8dcbad250a9787402f2c999ecb6c25695b00c9c6ee05a306c78b6490 + openmpi-1.10.4.tar.bz2: fb3c0c4c77896185013b6091b306d29ba592eb40d8395533da5c8bc300d922db + openmpi-1.10.7.tar.bz2: a089ece151fec974905caa35b0a59039b227bdea4e7933069e94bee4ed0e5a90 + openmpi-1.4.3.tar.bz2: 220b72b1c7ee35469ff74b4cfdbec457158ac6894635143a33e9178aa3981015 + openmpi-1.4.5.tar.bz2: a3857bc69b7d5258cf7fc1ed1581d9ac69110f5c17976b949cb7ec789aae462d + openmpi-1.6.5.tar.bz2: fe37bab89b5ef234e0ac82dc798282c2ab08900bf564a1ec27239d3f1ad1fc85 + openmpi-1.8.0.tar.bz2: 8ce8a0fb60d39469adba0adc4d0b94b3055ef6f800d536dbcb788f334b55db0d + openmpi-1.8.1.tar.bz2: 171427ebc007943265f33265ec32e15e786763952e2bfa2eac95e3e192c1e18f + openmpi-1.8.2.tar.bz2: ab70770faf1bac15ef44301fe2186b02f857646545492dd7331404e364a7d131 + openmpi-1.8.4.tar.bz2: 23158d916e92c80e2924016b746a93913ba7fae9fff51bf68d5c2a0ae39a2f8a + openmpi-1.8.8.tar.bz2: a28382d1e6a36f4073412dc00836ff2524e42b674da9caf6ca7377baad790b94 + openmpi-2.0.0.tar.bz2: 08b64cf8e3e5f50a50b4e5655f2b83b54653787bd549b72607d9312be44c18e0 + openmpi-2.0.1.tar.bz2: fed74f4ae619b7ebcc18150bb5bdb65e273e14a8c094e78a3fea0df59b9ff8ff + openmpi-2.1.0.tar.bz2: b169e15f5af81bf3572db764417670f508c0df37ce86ff50deb56bd3acb43957 + openmpi-2.1.1.tar.bz2: bd7badd4ff3afa448c0d7f3ca0ee6ce003b957e9954aa87d8e4435759b5e4d16 + openmpi-2.1.2.tar.bz2: 3cc5804984c5329bdf88effc44f2971ed244a29b256e0011b8deda02178dd635 + openmpi-2.1.5.tar.bz2: b807ccab801f27c3159a5edf29051cd3331d3792648919f9c4cee48e987e7794 + openmpi-2.1.6.tar.bz2: 98b8e1b8597bbec586a0da79fcd54a405388190247aa04d48e8c40944d4ca86e + openmpi-3.0.0.tar.bz2: f699bff21db0125d8cccfe79518b77641cd83628725a1e1ed3e45633496a82d7 + openmpi-3.0.1.tar.bz2: 663450d1ee7838b03644507e8a76edfb1fba23e601e9e0b5b2a738e54acd785d + openmpi-3.0.5.tar.bz2: f8976b95f305efc435aa70f906b82d50e335e34cffdbf5d78118a507b1c6efe8 + openmpi-3.1.1.tar.bz2: 3f11b648dd18a8b878d057e9777f2c43bf78297751ad77ae2cef6db0fe80c77c + openmpi-3.1.2.tar.bz2: c654ed847f34a278c52a15c98add40402b4a90f0c540779f1ae6c489af8a76c5 + openmpi-3.1.3.tar.bz2: 8be04307c00f51401d3fb9d837321781ea7c79f2a5a4a2e5d4eaedc874087ab6 + openmpi-3.1.4.tar.bz2: 17a69e0054db530c7dc119f75bd07d079efa147cf94bf27e590905864fe379d6 + openmpi-3.1.5.tar.bz2: fbf0075b4579685eec8d56d34d4d9c963e6667825548554f5bf308610af72133 + openmpi-3.1.6.tar.bz2: 50131d982ec2a516564d74d5616383178361c2f08fdd7d1202b80bdf66a0d279 + openmpi-4.0.0.tar.bz2: 2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b + openmpi-4.0.1.tar.bz2: cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709 + openmpi-4.0.2.tar.bz2: 900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057 + openmpi-4.0.3.tar.bz2: 1402feced8c3847b3ab8252165b90f7d1fa28c23b6b2ca4632b6e4971267fd03 + openmpi-4.0.4.tar.bz2: 47e24eb2223fe5d24438658958a313b6b7a55bb281563542e1afc9dec4a31ac4 + openmpi-4.0.5.tar.bz2: c58f3863b61d944231077f344fe6b4b8fbb83f3d1bc93ab74640bf3e5acac009 + openmpi-4.0.6.tar.bz2: 94b7b59ae9860f3bd7b5f378a698713e7b957070fdff2c43453b6cbf8edb410c + openmpi-4.0.7.tar.bz2: 7d3ecc8389161eb721982c855f89c25dca289001577a01a439ae97ce872be997 + openmpi-4.1.0.tar.bz2: 73866fb77090819b6a8c85cb8539638d37d6877455825b74e289d647a39fd5b5 + openmpi-4.1.1rc2.tar.bz2: f7d572621c93934b329281ee159c89124905ef05900d1a817efb7d262442d0f3 + openmpi-4.1.1.tar.bz2: e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda + openmpi-4.1.3.tar.bz2: 3d81d04c54efb55d3871a465ffb098d8d72c1f48ff1cbaf2580eb058567c0a3b + openmpi-4.1.4.tar.bz2: 92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d + openmpi-4.1.5.tar.bz2: a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3 + openmpi-4.1.6.tar.bz2: f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415 + openmpi-5.0.5.tar.bz2: 6588d57c0a4bd299a24103f4e196051b29e8b55fbda49e11d5b3d32030a32776 + + versions: + # 5.0.6: + # config: + # configure_args+: + # - --enable-mpi1-compatibility + # - --enable-static=no + # variants: + # - systems: [.*.merlin7.psi.ch] + # relstage: unstable + # overlay: Alps + # use_overlays: [PSI, Alps] + # group_deps: + # compiler: {gcc: [14.2.0,12.3.0,8.5.0], intelcc: [22.2]} + # build_requires: [hwloc/2.11.1, patchelf/0.14.5] + # runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.4] + # configure_args+: + # - --with-cxi + # - --with-lustre + # - --with-slingshot + # use_flags: [merlin7, slurm] + + 5.0.5: + config: + configure_args+: + - --enable-mpi1-compatibility + - --enable-static=no + variants: + - systems: [.*.merlin7.psi.ch] + relstage: stable + overlay: Alps + use_overlays: [PSI, Alps] + group_deps: + compiler: {gcc: [14.2.0, 12.3.0, 8.5.0], + intelcc: [22.2]} + build_requires: [hwloc/2.11.1, patchelf/0.14.5] + runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.3] + configure_args+: + - --with-cxi + - --with-lustre + - --with-slingshot + use_flags: [merlin7, slurm] + + 4.1.6: + config: + build_variants: first_match + variants: + - systems: [merlin-.*] + suffix: _slurm + use_flags: [merlin6, gpfs] + relstage: stable + overlay: base + group_deps: + compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 12.4.0, 13.1.0, 13.2.0, 14.2.0]} + build_requires: + - pmix/4.2.4 + - ucx/1.14.1_slurm + - libfabric/1.18.0 + - hwloc/2.9.1 + - patchelf/0.14.5 + runtime_deps: [cuda/12.1.1] + configure_args+: + - CFLAGS=-g -O0 + - LDFLAGS=-g + - --with-gpfs=/usr/lpp/mmfs + - --with-pmi=/usr + - --enable-static + + - systems: [ra-.*] + suffix: _ra + use_flags: [ra, gpfs] + group_deps: + compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]} + build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, hwloc/2.9.1, patchelf/0.14.5] + runtime_deps: [cuda/12.1.1] + configure_args+: + - --with-gpfs=/usr/lpp/mmfs + - --with-pmi=/usr + - --enable-static + + - systems: [.*.merlin7.psi.ch] + relstage: stable + overlay: Alps + group_deps: + compiler: {gcc: [12.3.0, 13.3.0, 14.2.0], intelcc: [22.2]} + build_requires: [hwloc/2.11.1, patchelf/0.14.5] + runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/4.2.9] + configure_args+: + - --enable-mpi1-compatibility + - --enable-static=no + - --with-lustre + use_overlays: [PSI, Alps] + use_flags: [merlin7, slurm] + + 4.1.4: + variants: + - systems: [merlin-*, ra-*] + relstage: unstable + suffix: _slurm + group_deps: + compiler: {nvhpc: [24.3_cuda_12.3, 23.5_cuda_12.1]} + build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5] + + 4.1.5: + variants: + - systems: [merlin-*, ra-*] + suffix: _slurm + group_deps: + compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]} + build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5] + runtime_deps: [cuda/12.1.1] + - systems: [merlin-*, ra-*] + suffix: _slurm + relstage: unstable + group_deps: + compiler: {intelcc: [22.2]} + build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5] + runtime_deps: [cuda/12.1.1] + + 4.1.4_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [10.4.0]} + runtime_deps: [cuda/11.5.1] + build_requires: [ucx/1.12.1_slurm] + + 4.1.3_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [9.3.0, 10.3.0, 11.2.0]} + runtime_deps: [cuda/11.5.1] + build_requires: [ucx/1.12.1_slurm] + + 4.1.1-1_slurm: + config: + relstage: unstable + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.3.0] + build_requires: [ucx/1.10.0_slurm] + + 4.1.1_slurm: + config: + relstage: unstable + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.3.0] + build_requires: [ucx/1.11.2_slurm] + + 4.1.0-1_dgx: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.2.2] + build_requires: [ucx/1.10.0-1_dgx] + + 4.0.7-1_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.4.3] + build_requires: [ucx/1.11.2-1_slurm] + + 4.0.7_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.5.1] + build_requires: [ucx/1.11.2-2_slurm] + + 4.0.5-2_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [10.2.0]} + runtime_deps: [cuda/11.3.0] + build_requires: [ucx/1.11.0_slurm] + + 4.0.5-1_slurm: + config: + relstage: stable + group_deps: + compiler: {gcc: [8.4.0, 9.3.0, 10.2.0, 10.3.0]} + runtime_deps: [cuda/11.2.2] + build_requires: [ucx/1.10.0-1_slurm] + + 4.0.5-1_dgx: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [8.4.0, 9.3.0, 10.2.0]} + runtime_deps: [cuda/11.2.2] + build_requires: [ucx/1.10.0-1_dgx] + + 4.0.5_slurm: + config: + relstage: stable + variants: + - group_deps: + compiler: {gcc: [gcc/9.2.0]} + runtime_deps: [cuda/11.0.3] + - group_deps: + compiler: {gcc: [8.4.0, 9.3.0], intel: [20.4]} + runtime_deps: [cuda/11.1.0] + + 4.0.4_slurm_libpmix: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [9.3.0]} + + 4.0.4_slurm: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.5.0, 8.4.0, 9.3.0], intel: [15.2, 17.4, 18.4, 20.1]} + + 4.0.3_slurm: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.5.0, 8.4.0, 9.3.0], intel: [15.2, 17.4, 18.4, 20.1]} + + 3.1.6_slurm: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.9.4, 5.5.0, 6.5.0], intel: [15.2, 17.4, 18.4, 20.1]} + - group_deps: + compiler: {gcc: [7.5.0, 8.4.0, 9.3.0]} + relstage: stable + - group_deps: + compiler: {intel: [20.4]} + runtime_deps: [cuda/11.1.0] + + 3.1.4_merlin6: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [7.4.0, 8.3.0]} + + 3.1.5_merlin6;3.1.5-1_merlin6: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [7.3.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]} + + 3.0.5_slurm: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]} + + 2.1.6_slurm: + config: + relstage: deprecated + group_deps: + compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]} diff --git a/Compiler/openmpi/files/variants.merlin6 b/Compiler/openmpi/files/variants.merlin6 index d74c05c..3b81657 100644 --- a/Compiler/openmpi/files/variants.merlin6 +++ b/Compiler/openmpi/files/variants.merlin6 @@ -40,7 +40,7 @@ openmpi/4.1.1-1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.10.0_slurm openmpi/4.1.3_slurm stable gcc/{9.3.0,10.3.0,11.2.0} cuda/11.5.1 b:ucx/1.12.1_slurm openmpi/4.1.4_slurm stable gcc/10.4.0 cuda/11.5.1 b:ucx/1.12.1_slurm -openmpi/4.1.5_slurm unstable gcc/{10.4.0,11.4.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5 +openmpi/4.1.5_slurm stable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5 openmpi/4.1.5_slurm unstable intelcc/22.2 b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5 openmpi/4.0.5-1_dgx deprecated gcc/{8.4.0,9.3.0,10.2.0} cuda/11.2.2 b:ucx/1.10.0-1_dgx diff --git a/Compiler/openmpi/files/variants.merlin7 b/Compiler/openmpi/files/variants.merlin7 new file mode 100644 index 0000000..3b81657 --- /dev/null +++ b/Compiler/openmpi/files/variants.merlin7 @@ -0,0 +1,50 @@ +openmpi/3.1.4_merlin6 deprecated gcc/{7.4.0,8.3.0} + +openmpi/3.1.5_merlin6 deprecated gcc/{7.3.0,7.4.0,8.3.0,9.2.0} +openmpi/3.1.5_merlin6 deprecated intel/{15.2,17.4,18.4} + +openmpi/3.1.5-1_merlin6 deprecated gcc/{7.3.0,7.4.0,8.3.0,9.2.0} +openmpi/3.1.5-1_merlin6 deprecated intel/{15.2,17.4,18.4} + +openmpi/2.1.6_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.4.0,8.3.0,9.2.0} +openmpi/2.1.6_slurm deprecated intel/{15.2,17.4,18.4} + +openmpi/3.0.5_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.4.0,8.3.0,9.2.0} +openmpi/3.0.5_slurm deprecated intel/{15.2,17.4,18.4} + +openmpi/3.1.6_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0} +openmpi/3.1.6_slurm stable gcc/{7.5.0,8.4.0,9.3.0} +openmpi/3.1.6_slurm deprecated intel/{15.2,17.4,18.4,20.1} +openmpi/3.1.6_slurm deprecated intel/20.4 cuda/11.1.0 + +openmpi/4.0.3_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.5.0,8.4.0,9.3.0} +openmpi/4.0.3_slurm deprecated intel/{15.2,17.4,18.4,20.1} + +openmpi/4.0.4_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.5.0,8.4.0,9.3.0} +openmpi/4.0.4_slurm deprecated intel/{15.2,17.4} +openmpi/4.0.4_slurm deprecated intel/{18.4,20.1} + +openmpi/4.0.5_slurm stable gcc/9.2.0 cuda/11.0.3 +openmpi/4.0.5_slurm stable gcc/{8.4.0,9.3.0} cuda/11.1.0 +openmpi/4.0.5_slurm stable intel/20.4 cuda/11.1.0 + +openmpi/4.0.5-1_slurm stable gcc/{8.4.0,9.3.0,10.2.0,10.3.0} cuda/11.2.2 b:ucx/1.10.0-1_slurm +openmpi/4.0.5-2_slurm stable gcc/10.2.0 cuda/11.3.0 b:ucx/1.11.0_slurm + +openmpi/4.0.7_slurm stable gcc/10.2.0 cuda/11.5.1 b:ucx/1.11.2-2_slurm +openmpi/4.0.7-1_slurm stable gcc/10.2.0 cuda/11.4.3 b:ucx/1.11.2-1_slurm + +openmpi/4.1.1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.11.2_slurm +openmpi/4.1.1-1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.10.0_slurm + +openmpi/4.1.3_slurm stable gcc/{9.3.0,10.3.0,11.2.0} cuda/11.5.1 b:ucx/1.12.1_slurm +openmpi/4.1.4_slurm stable gcc/10.4.0 cuda/11.5.1 b:ucx/1.12.1_slurm + +openmpi/4.1.5_slurm stable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5 +openmpi/4.1.5_slurm unstable intelcc/22.2 b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5 + +openmpi/4.0.5-1_dgx deprecated gcc/{8.4.0,9.3.0,10.2.0} cuda/11.2.2 b:ucx/1.10.0-1_dgx +openmpi/4.1.0-1_dgx deprecated gcc/10.2.0 cuda/11.2.2 b:ucx/1.10.0-1_dgx + + +openmpi/4.0.4_slurm_libpmix deprecated gcc/9.3.0 diff --git a/Compiler/openmpi/files/variants.rhel6 b/Compiler/openmpi/files/variants.rhel6 index 32db4a6..c81d7d8 100644 --- a/Compiler/openmpi/files/variants.rhel6 +++ b/Compiler/openmpi/files/variants.rhel6 @@ -52,3 +52,5 @@ openmpi/4.0.5 stable gcc/{7.5.0,8.4.0,9.3.0,10.2.0} ucx/1.8.1 openmpi/4.0.5 stable gcc/10.3.0 openmpi/4.1.4 stable gcc/10.4.0 + +openmpi/4.1.5 unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0} diff --git a/Compiler/openmpi/modulefile b/Compiler/openmpi/modulefile index d67d904..56befdc 100644 --- a/Compiler/openmpi/modulefile +++ b/Compiler/openmpi/modulefile @@ -44,3 +44,12 @@ if { $libcuda eq "" } { prepend-path LD_LIBRARY_PATH $PREFIX/lib/fallback/cuda } } + +if {[info exists ::env(PMIX_VERSION)]} { + set pmix_major_version [lindex [split $::env(PMIX_VERSION) "."] 0] + setenv SLURM_MPI_TYPE "pmix_v$pmix_major_version" +} + +if { $V_MAJOR >= 5 } { + setenv OMPI_MCA_mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda' +} diff --git a/EM/DeepEMhancer/build b/EM/DeepEMhancer/build new file mode 100755 index 0000000..cbf5ff7 --- /dev/null +++ b/EM/DeepEMhancer/build @@ -0,0 +1,34 @@ +#!/usr/bin/env modbuild + + +pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + + + #activate env and download deep learning models + mkdir -p "$PREFIX/deepmodels" + source "$PREFIX/miniconda/etc/profile.d/conda.sh" + conda activate "${P}_${V}" + deepemhancer --download "$PREFIX/deepmodels" + conda deactivate +} + +#DO NOTHING +pbuild::compile(){ + : +} + +pbuild::install(){ + : +} + + + + diff --git a/EM/DeepEMhancer/environment.yaml b/EM/DeepEMhancer/environment.yaml new file mode 100644 index 0000000..9a2d1d9 --- /dev/null +++ b/EM/DeepEMhancer/environment.yaml @@ -0,0 +1,7 @@ +channels: + - rsanchez1369 + - anaconda + - conda-forge +dependencies: + - python=3.10 + - deepEMhancer diff --git a/EM/DeepEMhancer/files/config.yaml b/EM/DeepEMhancer/files/config.yaml new file mode 100644 index 0000000..5b4312b --- /dev/null +++ b/EM/DeepEMhancer/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +DeepEMhancer: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 0.16: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable diff --git a/EM/DeepEMhancer/modulefile b/EM/DeepEMhancer/modulefile new file mode 100644 index 0000000..657d101 --- /dev/null +++ b/EM/DeepEMhancer/modulefile @@ -0,0 +1,34 @@ +#%Module + +module-whatis "Deep cryo-EM Map Enhancer (DeepEMhancer) " +module-url "https://github.com/rsanchezgarc/deepEMhancer" +module-license "Apache-2.0 License" +module-maintainer "Greta Assmann " + +module-help "DeepEMhancer is a python package designed to perform post-processing of cryo-EM maps as described in DeepEMhancer: a deep learning solution for cryo-EM volume post-processing, by Sanchez-Garcia et al, 2021." + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "conda(){ :; };" + puts stdout "set +u" + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + + +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate ${P}_${V};\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} + diff --git a/EM/EMAN/README.md b/EM/EMAN/README.md new file mode 100644 index 0000000..5636bcb --- /dev/null +++ b/EM/EMAN/README.md @@ -0,0 +1,10 @@ +# EMAN + +From version 2.99.53 (Oct. 23) EMAN is built as a conda package. + +Current installation on Merlin7 (Nov 24) is 2.99.66 + + +### Hints + +conda installation on A100 GPU diff --git a/EM/EMAN/build b/EM/EMAN/build index e72e4e4..789c7bd 100755 --- a/EM/EMAN/build +++ b/EM/EMAN/build @@ -1,23 +1,27 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'EM' - -pbuild::prep() { - local EMAN2DL="${PMODULES_TMPDIR:-/tmp}/eman${V}_sphire1.4_sparx.linux64.sh" - - if ! [ -f "$EMAN2DL" ]; then - wget -O "$EMAN2DL" "https://cryoem.bcm.edu/cryoem/static/software/release-${V}/eman${V}_sphire1.4_sparx.linux64.sh" - fi -} pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + +} + +#DO NOTHING +pbuild::compile(){ : } -pbuild::install() { +pbuild::install(){ : } -pbuild::compile() { - bash ${PMODULES_TMPDIR:-/tmp}/eman${V}_sphire1.4_sparx.linux64.sh -u -b -p $PREFIX -} + + + diff --git a/EM/EMAN/environment.yaml b/EM/EMAN/environment.yaml new file mode 100644 index 0000000..ad410e6 --- /dev/null +++ b/EM/EMAN/environment.yaml @@ -0,0 +1,5 @@ +channels: + - cryoem + - conda-forge +dependencies: + - eman-dev diff --git a/EM/EMAN/files/config.yaml b/EM/EMAN/files/config.yaml new file mode 100644 index 0000000..0fce05e --- /dev/null +++ b/EM/EMAN/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +EMAN: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 2.99.66: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable diff --git a/EM/EMAN/files/variants b/EM/EMAN/files/variants deleted file mode 100644 index f50340f..0000000 --- a/EM/EMAN/files/variants +++ /dev/null @@ -1,2 +0,0 @@ -EMAN/2.99.47 unstable cuda/11.2.2 -EMAN/2.2 stable diff --git a/EM/EMAN/modulefile b/EM/EMAN/modulefile index ae15052..a664602 100644 --- a/EM/EMAN/modulefile +++ b/EM/EMAN/modulefile @@ -1,37 +1,34 @@ -#%Module1.0 +#%Module -set dont-setenv {LD_LIBRARY_PATH} +module-whatis "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes " +module-url "https://blake.bcm.edu/emanwiki/EMAN2" +module-license "GNU gerneral public license: GPLv2" +module-maintainer "Greta Assmann " -module-whatis "EMAN(2) is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes" -module-url "https://blake.bcm.edu/emanwiki/EMAN2" -module-license "GPL license" -module-maintainer "Elsa Germann " +module-help "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes. EMAN's original purpose was performing single particle reconstructions (3-D volumetric models from 2-D cryo-EM images) at the highest possible resolution, but the suite now also offers support for single particle cryo-ET, and tools useful in many other subdisciplines such as helical reconstruction, 2-D crystallography and whole-cell tomography. EMAN2 is capable of processing large data sets (>100,000 particle) very efficiently" -module-help "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes. EMAN's original purpose was performing single particle reconstructions (3-D volumetric models from 2-D cryo-EM images) at the highest possible resolution, but the suite now also offers support for single particle cryo-ET, and tools useful in many other subdisciplines such as helical reconstruction, 2-D crystallography and whole-cell tomography. EMAN2 is capable of processing large data sets (>100,000 particle) very efficiently. +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "conda(){ :; };" + puts stdout "set +u" + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} -Please also note that this is not the (related) EMEN2 electronic notebook, but is EMAN2, a scientific image processing suite. -Please Cite (and read) +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate ${P}_${V};\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} -EMAN is free software, supported by NIH Grants. It is critical that you cite EMAN2 when you use it in a publication in any significant way, to help us document usage when trying to renew our funding. Feel free to cite any of these: - - Primary EMAN2 paper: - - G. Tang, L. Peng, P.R. Baldwin, D.S. Mann, W. Jiang, I. Rees & S.J. Ludtke. (2007) EMAN2: an extensible image processing suite for electron microscopy. J Struct Biol. 157, 38-46. PMID: 16859925 - - Subnanometer resolution subtomogram averaging using PPPT methods: - Chen M, Bell JM, Shi X, Sun SY, Wang Z, Ludtke SJ. Nat Methods. (2019) A complete data processing workflow for cryo-ET and subtomogram averaging, Nat. Methods, 16(11):1161-1168, PMC31611690 - - Neural Network Based Tomogram Segmentation - Chen M, Dai W, Sun SY, Jonasch D, He CY, Schmid MF, et al. (2017). Convolutional neural networks for automated annotation of cellular cryo-electron tomograms. Nat. Methods, 14(10), 983–5. PMCID: PMC5623144 - - Neural Network Particle Picker - Bell JM, Chen M, Durmaz T, Fluty AC, Ludtke SJ. (2018). New software tools in EMAN2 inspired by EMDatabank map challenge. J. Struct. Biol. Elsevier;, 204(2), 283–90. - - EMAN2 high resolution refinement methods: - - J.M. Bell, M. Chen, P.R. Baldwin & S.J. Ludtke. (2016) High Resolution Single Particle Refinement in EMAN2.1. Methods. 100, 25-34. PMC4848122 - - Methods for analysis of conformational and compositional variability: - Ludtke, S. J. \"Single-Particle Refinement and Variability Analysis in EMAN2.1.\" in Methods Enzymol 579159-189 (Elsevier, United States, 2016). PMC5101015 -" diff --git a/EM/IMOD/README.md b/EM/IMOD/README.md index 034c88d..452197b 100644 --- a/EM/IMOD/README.md +++ b/EM/IMOD/README.md @@ -12,3 +12,7 @@ The installation includes environment scripts which install into `$IMOD_DIR/profile.d`. These are sourced in the modulefile. This means that the module cannot be unloaded cleanly (eg IMOD remains in the PATH after unloading). + +TODO solution: re-write the .sh script that is sourced in the modulefile into the +modulefile directly. Variables and Path extensions will then automatically be +"unset" when unloding. diff --git a/EM/IMOD/build b/EM/IMOD/build index f4fdc4d..2a4b937 100755 --- a/EM/IMOD/build +++ b/EM/IMOD/build @@ -1,18 +1,16 @@ #!/usr/bin/env modbuild -set -e -pbuild::add_to_group 'EM' pbuild::prep() { : ${CUDA_VERSION:?No CUDA_VERSION set} + #local cuda="${CUDA_VERSION%.*}" IF the cua version matches the cuda version in the filename local cuda="${CUDA_VERSION%.*}" - local filename="imod_${V_PKG}_RHEL7-64_CUDA${cuda}.sh" - if [[ $V_RELEASE == *beta* ]]; then - local url="https://bio3d.colorado.edu/ftp/latestIMOD/RHEL7-64_CUDA${cuda}/$filename" - else - local url="https://bio3d.colorado.edu/imod/AMD64-RHEL5/$filename" - fi + #otherwise: + local cuda="12.0" + local filename="imod_${V_PKG}_RHEL8-64_CUDA${cuda}.sh" + # beta release link for Merlin7 ( RH8 for Opensuse) + local url="https://bio3d.colorado.edu/ftp/latestIMOD/RHEL8-64_CUDA${cuda}/$filename" local dst="$PMODULES_DISTFILESDIR/${filename}" if [ -f "$dst" ]; then echo "Found cached $dst" >&2 @@ -35,8 +33,11 @@ pbuild::compile() { pbuild::install() { : ${CUDA_VERSION:?No CUDA_VERSION set} - local cuda="${CUDA_VERSION%.*}" - local filename="imod_${V_PKG}_RHEL7-64_CUDA${cuda}.sh" + #local cuda="${CUDA_VERSION%.*}" + #(if cuda version matches the file name) if not: + local cuda="12.0" + + local filename="imod_${V_PKG}_RHEL8-64_CUDA${cuda}.sh" local dst="$PMODULES_DISTFILESDIR/${filename}" mkdir -p "$PREFIX/profile.d" diff --git a/EM/IMOD/files/config.yaml b/EM/IMOD/files/config.yaml new file mode 100644 index 0000000..c62c171 --- /dev/null +++ b/EM/IMOD/files/config.yaml @@ -0,0 +1,15 @@ +--- +format: 1 +IMOD: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 5.0.0: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable + runtime_deps: + - cuda/12.2.0 diff --git a/EM/IMOD/files/variants b/EM/IMOD/files/variants deleted file mode 100644 index 2c4368a..0000000 --- a/EM/IMOD/files/variants +++ /dev/null @@ -1,4 +0,0 @@ -IMOD/4.9.5 stable -IMOD/4.11.20 stable cuda/10.1.105 -IMOD/4.11.24 unstable cuda/10.1.105 -IMOD/4.12.50-beta unstable cuda/10.1.105 diff --git a/EM/IMOD/modulefile b/EM/IMOD/modulefile index d19b9e2..e3f1302 100644 --- a/EM/IMOD/modulefile +++ b/EM/IMOD/modulefile @@ -3,7 +3,7 @@ module-whatis "IMOD is a set of image processing, modeling and display programs used for tomographic reconstruction and for 3D reconstruction of EM serial sections and optical sections." module-url "http://bio3d.colorado.edu/imod/" module-license "mostly GPLv2.0, with the exceptions, see http://bio3d.colorado.edu/imod/COPYRIGHT.txt" -module-maintainer "Spencer Bliven / Dmitry Ozerov " +module-maintainer "Greta Assmann - greta.assmann@psi.ch" module-help " IMOD is a set of image processing, modeling and display programs used for tomographic @@ -34,6 +34,11 @@ For tomographic reconstruction, see also: > tomographic reconstruction in IMOD. J. Struct. Biol. 197:102-113. " +# TO DO : rewrite IMOD-linx.sh script directly into the following section instead of sourcing the script + +#this is needed to NOT set the default IMOD_DIR by pmodules, as this is set later in the IMOD-linux.sh +set dont-setenv { IMOD_DIR } + switch [module-info mode] { "load" { puts stdout "source $PREFIX/profile.d/IMOD-linux.sh" diff --git a/EM/PEET/README.md b/EM/PEET/README.md index 9828d75..fb5b585 100644 --- a/EM/PEET/README.md +++ b/EM/PEET/README.md @@ -6,9 +6,7 @@ PEET is shipped as a self-expanding installation script. Run `./build` to install. - -An experimental config.yaml files is included using Pmodules/1.1.10 syntax. -This should probably not be used until yaml support in modbuild stabilizes. +This module is usually used in combination with IMOD (etomo GUI). ## Testing @@ -16,12 +14,17 @@ This should probably not be used until yaml support in modbuild stabilizes. ## Build notes -Building was successful with Pmodules 1.1.8 but not 1.1.9 or 1.1.10. Linking the binary is a bit of a pain. It requires gcc to be loaded to provide relatively recent versions of libstdc++.so.6. I didn't fine what exact version Matlab MCR expects, but 9.5.0 seemed to work. MCR is linked dynamically at runtime through LD_LIBRARY_PATH. This is not set in the modulefile as expected, but rather in wrapper scripts which source particle.cfg. Sed commands in -pbuild::install update this file so that it reads the loaded modules correctly. +pbuild::install update this file so that it reads the loaded modules correctly. +(Remark Nov. 2024: still true for version 1.17.0) +## Versions + +According to the website (INSTALL.TXT) the following Matlab is needed : + +-1.17.0 : 2022b (Merlin7, automatically loads matlab) diff --git a/EM/PEET/build b/EM/PEET/build index 27d7f66..caceb01 100755 --- a/EM/PEET/build +++ b/EM/PEET/build @@ -1,6 +1,5 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'EM' pbuild::prep() { @@ -13,6 +12,7 @@ pbuild::prep() { --fail \ --output "$dst" \ "https://bio3d.colorado.edu/ftp/PEET/linux/Particle_${V_PKG}_linux.sh" + --no-check-certificate fi } diff --git a/EM/PEET/files/_config.yaml.disable b/EM/PEET/files/_config.yaml.disable deleted file mode 100644 index 64da532..0000000 --- a/EM/PEET/files/_config.yaml.disable +++ /dev/null @@ -1,8 +0,0 @@ -overlay: base -relstage: stable -group: EM -shasums: - PEET/1.15.1a: de4e9104f90b9379502a34b58be33eafd5514d554002a94efe2adba6f44785e6 - -PEET/1.15.1a: - - relstage: unstable diff --git a/EM/PEET/files/config.yaml b/EM/PEET/files/config.yaml new file mode 100644 index 0000000..5470687 --- /dev/null +++ b/EM/PEET/files/config.yaml @@ -0,0 +1,16 @@ +--- +format: 1 +PEET: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 1.17.0: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable + runtime_deps: + - gcc/12.3.0 + - matlab/2022b diff --git a/EM/PEET/files/variants b/EM/PEET/files/variants deleted file mode 100644 index 05b2b61..0000000 --- a/EM/PEET/files/variants +++ /dev/null @@ -1,2 +0,0 @@ -PEET/1.15.1a stable gcc/9.5.0 matlab/2020b -PEET/1.16.0 stable gcc/9.5.0 matlab/2021b diff --git a/EM/PEET/modulefile b/EM/PEET/modulefile index 7510133..f95a274 100644 --- a/EM/PEET/modulefile +++ b/EM/PEET/modulefile @@ -3,7 +3,7 @@ module-whatis "PEET (Particle Estimation for Electron Tomography) is an open-source package for aligning and averaging particles in 3-D subvolumes extracted from tomograms." module-url "https://bio3d.colorado.edu/PEET/" module-license "GPLv2 license" -module-maintainer "Spencer Bliven " +module-maintainer "Greta Assmann " module-help " PEET (Particle Estimation for Electron Tomography) is an open-source package diff --git a/EM/crYOLO/README.md b/EM/crYOLO/README.md index 9845306..0af8110 100644 --- a/EM/crYOLO/README.md +++ b/EM/crYOLO/README.md @@ -1,14 +1,15 @@ # crYOLO crYOLO/1.2.3 was built as a miniconda independent environment. -Subsequent versions are deployed as central conda environments. -This significantly changed the build process. +Subsequent versions (up to 1.6.1) are deployed as central conda environments + +crYOLO/1.9.9 (Merlin7, oct 2024) is installed with an independent miniconda setup again. + +From crYOLO/1.9.9 crYOLO exists as two different conda envs, one crYOLO (code itself) env, one napari (visualization) env. +The installation notes recommend to link one into another, on Merlin7 simply two different modules and envs exist. +Users need to load one env in one terminal ( crYOLO itself) and another for visualization (napari). ## Adding New Versions -To add a new version, first create the conda environment, as described in -../../Programming/anaconda/2019.07/conda-env-defs/cryolo/. - -Next, update files/variants with the new version and run `./build ` to -install the modulefile +Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script. diff --git a/EM/crYOLO/build b/EM/crYOLO/build index 6f1766a..789c7bd 100755 --- a/EM/crYOLO/build +++ b/EM/crYOLO/build @@ -1,20 +1,27 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'EM' -pbuild::prep() { - : -} - pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + +} + +#DO NOTHING +pbuild::compile(){ : } -pbuild::compile() { +pbuild::install(){ : } -pbuild::install() { - : -} + + diff --git a/EM/crYOLO/files/config-1.2.3.sh b/EM/crYOLO/files/config-1.2.3.sh deleted file mode 100644 index 319d977..0000000 --- a/EM/crYOLO/files/config-1.2.3.sh +++ /dev/null @@ -1,10 +0,0 @@ -# crYOLO configuration variables - -# Miniconda installer filename. Defaults to 'latest' -MINICONDA_VERSION='Miniconda2-4.5.12-Linux-x86_64.sh' - -# cryoloBM download url -CRYOLOBM_URL='ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_BM_V1_1_1/cryoloBM-1.1.1.tar.gz' -# cryolo download url. Default: -#CRYOLO_URL='ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_V1_2_3/cryolo-1.2.3.tar.gz' - diff --git a/EM/crYOLO/files/config.yaml b/EM/crYOLO/files/config.yaml new file mode 100644 index 0000000..8b6b49a --- /dev/null +++ b/EM/crYOLO/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +crYOLO: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 1.9.9: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable diff --git a/EM/crYOLO/files/variants b/EM/crYOLO/files/variants deleted file mode 100644 index 3248392..0000000 --- a/EM/crYOLO/files/variants +++ /dev/null @@ -1,5 +0,0 @@ -crYOLO/1.2.3 deprecated cuda/9.0.176 -crYOLO/1.5.6_gpu stable anaconda/2019.07 -crYOLO/1.6.1_gpu stable anaconda/2019.07 -crYOLO/1.6.1_cpu stable anaconda/2019.07 - diff --git a/EM/crYOLO/modulefile b/EM/crYOLO/modulefile index 41cf27a..4a9df37 100644 --- a/EM/crYOLO/modulefile +++ b/EM/crYOLO/modulefile @@ -3,7 +3,7 @@ module-whatis "crYOLO is a fast and accurate particle picking procedure for electron microscopy" module-url "http://sphire.mpg.de/wiki/doku.php?id=pipeline:window:cryolo" module-license "SPHIRE-crYOLO Complimentary Science Software License (http://sphire.mpg.de/wiki/doku.php?id=cryolo_license). Non-commercial academic and research purposes only" -module-maintainer "Spencer Bliven " +module-maintainer "Greta Assmann " module-help " CrYOLO is a fast and accurate particle picking procedure. It's based on @@ -26,28 +26,20 @@ convolutional neural networks and utilizes the popular You Only Look Once set shelltype [module-info shelltype] switch -- $shelltype { "sh" { - puts stdout "source \"\${ANACONDA_PREFIX}\"/admintools/conda_setup.sh;\n" + puts stdout "conda(){ :; };" + puts stdout "set +u" + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" } default { puts stderr "Shells of type '$shelltype' are NOT supported!" } } -# Determine useflags and construct conda env name -set list [split $V "_"] -set version [lindex ${list} 0] -set useflags [lrange ${list} 1 end] -set flavour [lindex $useflags 0] -set env_to_activate [string tolower ${P}]-${version}-${flavour} - -#puts stderr "P/V: $P/$V" -#puts stderr "USEFLAG: [lindex $useflags 0]" -#puts stderr "$env_to_activate" switch [module-info mode] { "load" { # Relies on the anaconda module being loaded since we need to update the path - puts stdout "conda activate $env_to_activate;\n" + puts stdout "conda activate ${P}_${V};\n" } "unload" - "remove" { diff --git a/EM/cryocare/README.md b/EM/cryocare/README.md new file mode 100644 index 0000000..8570033 --- /dev/null +++ b/EM/cryocare/README.md @@ -0,0 +1,11 @@ + Installation remarks for cryocare: + + - pip installation from https://pypi.org/project/cryoCARE/, (see environment.yaml) + - creation of conda env with miniconda + +Usage with Relion: module does not need to be activated , BUT : +- executables need to be provided in the relion GUI +- the modulefile in RELION needs to add the cryocare bin to the LD_LIBRARY_PATH, otherwise the libraries will not be found + + + diff --git a/EM/cryocare/build b/EM/cryocare/build new file mode 100755 index 0000000..d3169b1 --- /dev/null +++ b/EM/cryocare/build @@ -0,0 +1,23 @@ +#!/usr/bin/env modbuild + + +pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + +} + +#DO NOTHING +pbuild::compile(){ + : +} + +pbuild::install(){ + : +} diff --git a/EM/cryocare/environment.yaml b/EM/cryocare/environment.yaml new file mode 100644 index 0000000..06b66c2 --- /dev/null +++ b/EM/cryocare/environment.yaml @@ -0,0 +1,10 @@ +channels: + - conda-forge + - defaults +dependencies: + - python=3.8 + - cudatoolkit=11.0 + - cudnn=8.0 + - pip: + - tensorflow==2.4 + - cryoCARE diff --git a/EM/cryocare/files/config.yaml b/EM/cryocare/files/config.yaml new file mode 100644 index 0000000..5efcd34 --- /dev/null +++ b/EM/cryocare/files/config.yaml @@ -0,0 +1,8 @@ +format: 1 +cryocare: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 0.3.0: diff --git a/EM/cryocare/modulefile b/EM/cryocare/modulefile new file mode 100644 index 0000000..2c0f37a --- /dev/null +++ b/EM/cryocare/modulefile @@ -0,0 +1,34 @@ +#%Module1.0 + +module-whatis "Cryocare - Content-Aware Image Restoration for Cryo-Transmission Electron Microscopy Data" +module-url "https://github.com/juglab/cryoCARE_T2T" +module-license "BSD 2-Clause Simplified License" +module-maintainer "Greta Assmann " + +module-help "https://arxiv.org/abs/1810.05420" + + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + + +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate ${P}_${V};\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} + + diff --git a/EM/dynamo/1.1.538/config b/EM/dynamo/1.1.538/config new file mode 100644 index 0000000..ba8d2f5 --- /dev/null +++ b/EM/dynamo/1.1.538/config @@ -0,0 +1,3 @@ +# Google drive file hash, from https://wiki.dynamo.biozentrum.unibas.ch/w/index.php/Downloads +DYNAMO_ID=11_HqORqfwX21odS4zTuQKLbzHDSYgeog + diff --git a/EM/dynamo/README.md b/EM/dynamo/README.md index cef3056..a8fb8c3 100644 --- a/EM/dynamo/README.md +++ b/EM/dynamo/README.md @@ -10,9 +10,21 @@ Installation should be done on merlin with an -adm account 2. Add google drive download link to `$V/config`. 3. Run `build ` 4. module load dynamo/$V -5. Compile stand-alone: `dynamo_setup_linux.sh` -6. Compile MPI: `source dynamo_setup_cluster.sh mpic++ dynamo_activate_linux_shipped_MCR.sh` -7. Compile Cuda: +5. `cd $DYNAMO_HOME/bin`. Further steps are taken from `README_dynamo_installation.txt` +6. [Compile stand-alone](https://www.dynamo-em.org/w/index.php?title=Installation) + + dynamo_setup_linux.sh + +7. [Compile MPI](https://www.dynamo-em.org/w/index.php?title=MPI_Cluster): + - With the shipped MCRLinux directory: + + source dynamo_setup_cluster.sh mpic++ dynamo_activate_linux_shipped_MCR.sh + + - With MCR from pmodules: + + source dynamo_setup_cluster.sh mpic++ dynamo_activate_MCR.sh + +8. Compile Cuda: cd $DYNAMO_ROOT/cuda make clean diff --git a/EM/dynamo/build b/EM/dynamo/build index f4e547a..cf1303c 100755 --- a/EM/dynamo/build +++ b/EM/dynamo/build @@ -51,6 +51,8 @@ pbuild::prep() { download_dynamo "$DYNAMO_ID" "$TAR_FILE" mkdir -p "$PREFIX" unpack "$TAR_FILE" "$PREFIX/bin" + + cp -n "$BUILDBLOCK_DIR/dynamo_activate_MCR.sh" "$PREFIX/bin/" } pbuild::configure() { diff --git a/EM/dynamo/dynamo_activate_MCR.sh b/EM/dynamo/dynamo_activate_MCR.sh new file mode 100644 index 0000000..2a45d91 --- /dev/null +++ b/EM/dynamo/dynamo_activate_MCR.sh @@ -0,0 +1,18 @@ +# Activates MCR from pmodules + +DYNAMO_FOLDER=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +MCR_ROOT=${MATLAB_DIR:?No matlab module loaded} + + +# Checks availability of the MCR folder +if ! [ -d $MCR_ROOT ]; then + echo "ATTENTION: the Matlab module is not loaded." + return +fi + +echo "MCR for linux has been found in location:" $MCR_ROOT +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MCR_ROOT/runtime/glnxa64:$MCR_ROOT/bin/glnxa64:$MCR_ROOT/sys/os/glnxa64:$MCR_ROOT/sys/opengl/lib/glnxa64 + +echo Activating Dynamo as standalone + +source $DYNAMO_FOLDER/dynamo_activate_linux.sh diff --git a/EM/dynamo/files/variants b/EM/dynamo/files/variants index d7b2939..21537f4 100644 --- a/EM/dynamo/files/variants +++ b/EM/dynamo/files/variants @@ -1 +1,2 @@ dynamo/1.1.514 unstable b:psi-python36/5.0.1 gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.1.0 matlab/2019a +dynamo/1.1.538 unstable b:psi-python36/5.0.1 gcc/11.2.0 cuda/11.5.1 openmpi/4.1.4_slurm matlab/2023a diff --git a/EM/finddqe/README b/EM/finddqe/README new file mode 100644 index 0000000..ad99060 --- /dev/null +++ b/EM/finddqe/README @@ -0,0 +1,3 @@ +Installation information: +The Makefile_linux_amd64_gnu that is given with the tar file is not sufficient for installation. Requires two small changes, adding of two flags to the Makefile. This is done with the pbuild::configure step , where the corrected Makefile is copied into the src folder. +Also, installation was done from/on the Merlin-Login Node. diff --git a/EM/finddqe/build b/EM/finddqe/build new file mode 100755 index 0000000..abc6d96 --- /dev/null +++ b/EM/finddqe/build @@ -0,0 +1,28 @@ +#!/usr/bin/env modbuild + +# Binary distribution with manual installation. See README.md + +pbuild::add_to_group 'EM' + +pbuild::set_download_url "https://grigoriefflab.umassmed.edu/system/tdf?path=FindDQE_150706.tar.gz&file=1&type=node&id=4220" "$P-$V_PKG.tar.gz" + +pbuild::configure() { + cp "$BUILDBLOCK_DIR/files/Makefile" "$SRC_DIR/src" +} + +pbuild::compile() { + cd "$SRC_DIR/src" + make +} + +pbuild::install() { + mkdir -p "$PREFIX/bin" + cp "$SRC_DIR/bin/finddqe.exe" "$PREFIX/bin/finddqe" +} + + + + + + + diff --git a/EM/finddqe/files/Makefile b/EM/finddqe/files/Makefile new file mode 100644 index 0000000..589e95f --- /dev/null +++ b/EM/finddqe/files/Makefile @@ -0,0 +1,51 @@ +# +# ------ MAKEFILE FILE FOR Linux FREALIGN ----------- +# +# Using: gnu compiler +# +# Thanks to: Shixin Yang & Dr Edward Egelman at University of Virginia +# for providing this file +# +# Notes: To create executable: make -f Makefile_linux_amd64_gnu +# + +SHELL = /bin/sh + +FFLAGS = -m64 -O3 -s -fomit-frame-pointer -Wall -falign-functions=4 \ + -funroll-loops -fexpensive-optimizations -fschedule-insns2 \ + -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ + -cpp -w -c + +CFLAGS = -m64 -O3 -DPROTOTYPE -D_FILE_OFFSET_BITS=64 \ + -D_LARGEFILE_SOURCE -cpp -w -c + +COMP = gfortran + +CC = gcc + +ifeq ($(MKLROOT),"") + LF = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE +else + LF = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_sequential.a -Wl,--end-group -ldl -lpthread +endif + +PGM = finddqe + +LIB = $(PGM).a + +.PRECIOUS : $(PGM) $(LIB) + +include Makefile.inc + +ioc.o : ioc.c + $(CC) $(CFLAGS) -o ioc.o ioc.c + $(AR) r $(LIB) ioc.o + @\rm ioc.o + +$(LIB) : ioc.o $(ELEMENTS) + @echo all object files placed in library + +.f.a: + $(COMP) $(FFLAGS) $< + $(AR) r $(LIB) $*.o + @\rm $*.o diff --git a/EM/finddqe/files/variants b/EM/finddqe/files/variants new file mode 100644 index 0000000..880f337 --- /dev/null +++ b/EM/finddqe/files/variants @@ -0,0 +1 @@ +finddqe/1.6 unstable b:intel/22.2 diff --git a/EM/finddqe/modulefile b/EM/finddqe/modulefile new file mode 100644 index 0000000..724a0e5 --- /dev/null +++ b/EM/finddqe/modulefile @@ -0,0 +1,9 @@ +#%Module1.0 + +module-whatis "FindDQE determines the detective quantum efficiency (DQE) of a detector." +module-url "https://grigoriefflab.umassmed.edu/finddqe" +module-license "The Janelia Research Campus Software License 1.2 http://license.janelia.org/license/janelia_license_1_2.html" +module-maintainer "Greta Assmann " + +module-help "Ruskin RS Yu Z Grigorieff N 2013 Quantitative characterization of electron detectors for transmission electron microscopy J Struct Biol 184 385-393 " + diff --git a/EM/napari/README.md b/EM/napari/README.md new file mode 100644 index 0000000..0c1b1b0 --- /dev/null +++ b/EM/napari/README.md @@ -0,0 +1,12 @@ +# napari-boxmanager + +The napari module is built in combination with the crYOLO module : + +From crYOLO/1.9.9 crYOLO exists as two different conda envs, one crYOLO (code itself) env, one napari (visualization) env. +The installation notes recommend to link one into another, on Merlin7 simply two different modules and envs exist. +Users need to load one env in one terminal ( crYOLO itself) and another for visualization (napari). + +## Adding New Versions + +Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script. + diff --git a/EM/napari/build b/EM/napari/build new file mode 100755 index 0000000..789c7bd --- /dev/null +++ b/EM/napari/build @@ -0,0 +1,27 @@ +#!/usr/bin/env modbuild + + +pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + +} + +#DO NOTHING +pbuild::compile(){ + : +} + +pbuild::install(){ + : +} + + + + diff --git a/EM/napari/environment.yaml b/EM/napari/environment.yaml new file mode 100644 index 0000000..422be97 --- /dev/null +++ b/EM/napari/environment.yaml @@ -0,0 +1,11 @@ +channels: + - conda-forge + - anaconda +dependencies: + - python=3.10 + - pyqt + - napari=0.4.17 + - pip + - pip: + - napari-boxmanager + diff --git a/EM/napari/files/config.yaml b/EM/napari/files/config.yaml new file mode 100644 index 0000000..7b4c0ed --- /dev/null +++ b/EM/napari/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +napari: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 0.4.17: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable diff --git a/EM/napari/modulefile b/EM/napari/modulefile new file mode 100644 index 0000000..4855327 --- /dev/null +++ b/EM/napari/modulefile @@ -0,0 +1,34 @@ +#%Module + +module-whatis "Particle selection tool for cryo-em (crYOLO) " +module-url "https://cryolo.readthedocs.io/en/stable/installation.html#install-napari-and-the-boxmanager-plugin" +module-license "SPHIRE-crYOLO Complimentary Science Software License (http://sphire.mpg.de/wiki/doku.php?id=cryolo_license). Non-commercial academic and research purposes only" +module-maintainer "Greta Assmann " + +module-help "Napari-Boxmanager is a tool to use in combination with crYOLO (visualization for particle picking) " + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "conda(){ :; };" + puts stdout "set +u" + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + + +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate ${P}_${V};\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} + diff --git a/EM/relion/.build.swn b/EM/relion/.build.swn deleted file mode 100644 index e69de29..0000000 diff --git a/EM/relion/README.md b/EM/relion/README.md index a03e1ac..f1c1701 100644 --- a/EM/relion/README.md +++ b/EM/relion/README.md @@ -11,3 +11,47 @@ and MKL, but this would require additional openmpi variants. After running ./build, install relion scripts from the repository at https://git.psi.ch/lsm-hpce/relion-scripts + +## Important info per version! + +### 5.0-beta (OLD, Merlin6) +- From version 5.0-beta on, a conda env is required (done with central anaconda module, needs to be done on pmod7 because of AFS hardlinks) +- the conda env is build in the folder $SRC\_DIR/conda\_envs. Also, weights for BLUSH, MODEL-ANGELO and CLASS-RANKER are downloaded in the installation step. + +### 5.0-1beta (OLD, Merlin6) +- the conda env is made with a miniconda installation, and because of upgrading to Pmodules/1.1.21 , the variants file was dropped and changed into the config.yaml file. +- The build script was also updated accordingly +- Also, cryocare is now available in a wrapper from relion, the cryocare installation executables need to be provided (seperate cryocare module). It is crucial to add the cryocare lib path (from the cryocare conda env) to the LD_LIBRARY_PATH when loading the relion module +- tiff module no longer required, as this conflicts with the system shared tiff libs (not 100% sure why this canged from previous installations though) + +### 5.0-2beta (ON MERLIN7) +- no fetching of weights with ftp possible, so cp from other machines into BUILD DIR and using the -DFETCH\_WEIGHTS=OFF option +- link : ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/fltk-1.3.5-source.tar.gz +- link : ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/classranker\_v1.0.ckpt.gz + +### 5.0.0 A100 +- same as 5.0-2beta (especially when it comes to the weights...) +- copy the fltk and the classranker file into the BUILD Directory. The build script assumes that these two files are in the BUILD\_DIR. +- sha256 errors occured during installation: +```text +ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them. + unknown package: + Expected sha256 20abd2cae58e55ca1af8a8dcf43293336a59adf0391f1917bf8518633cfc2cdf + Got e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +``` +- The download of some packages (.whl files) was blocked by the merlin7 firewall. Google the shasum and find the package name. Try to manually download with curl. If this fails, this is a strong indication for network/firewall issues that need to be adressed by the networking team. .whl files from conda +pip installations are ususally stored in the env in lib/pythonXXX. +- Also, to not clean up build directories: +```text +--no-clean +Don't clean up build directories. +(environment variable: PIP_NO_CLEAN) + +``` +- adding flags to activate more aggressive compiler optimsations (affixing to `x86-64-v3` which is fully support on all EPYC nodes on Merlin7) + +### 5.0.0 for GH + +no successful installation so far - failing for conda env. Elsa G. build some hacky hack that works kind of.. +needs to be investigated further. + +- will attempt to build with more aggressive compiler optimisations as proscribed in: diff --git a/EM/relion/build b/EM/relion/build index 22c5302..d66be30 100755 --- a/EM/relion/build +++ b/EM/relion/build @@ -1,42 +1,139 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'EM' -pbuild::use_cmake +PERFORMANCE="yes" +PROFILE="no" +SP="no" pbuild::prep() { + local BRANCH if [[ "$V" =~ beta$ ]]; then BRANCH="ver${V_MAJOR}.${V_MINOR}" + elif [[ "$V" =~ profile$ ]]; then + BRANCH="${V_PKG}" + PROFILE="yes" + elif [[ "$V" =~ sp$ ]]; then + BRANCH="ver${V_MAJOR}.${V_MINOR}" + SP="yes" else BRANCH="${V_PKG}" fi - git clone --depth=1 -b "$BRANCH" https://github.com/3dem/relion.git "$SRC_DIR" || return $? + if [[ -d "$SRC_DIR/.git" ]]; then + cd "$SRC_DIR" + git pull + else + git clone --depth=1 -b "$BRANCH" https://github.com/3dem/relion.git "$SRC_DIR" || return $? + fi } + pbuild::pre_configure() { - # CMake-based build + # Section will be switched on for -profile version + #----------------------------------------------------------- + if [[ "$PROFILE" == "yes" ]]; then + # this needs to go into the config.yml file for >5.0-1beta + if [[ "$V_MAJOR" -lt "5" ]]; then + : pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=BENCHMARKING" + fi + fi + #------------------------------------------------------------ - pbuild::add_configure_args "-DFORCE_OWN_FFTW=ON" - pbuild::add_configure_args "-DFORCE_OWN_FLTK=ON" - pbuild::add_configure_args "-DFORCE_OWN_TBB=ON" + # Section will be switched on for single-precision version + # Safe memory usage for multibody refinements + #------------------------------------------------------------ + if [[ "$SP" == "yes" ]]; then + # this needs to go into the config.yml file for >5.0-1beta + if [[ "$V_MAJOR" -lt "5" ]]; then + : pbuild::add_configure_args "-DDoublePrec_CPU=OFF" + fi + fi + #------------------------------------------------------------ - # CUDA related (set lowest CC to 6.1 for 1080 compatibility) - pbuild::add_configure_args "-DCUDA=ON" - pbuild::add_configure_args "-DCUDA_ARCH=61" - pbuild::add_configure_args "-DCudaTexture=ON" + # Set performance oriented compiler flags, specific for a given + # architecture. + # ------------------------------------------------------------- + if [[ "$PERFORMANCE" == "yes" && "$PROFILE" == "no" ]]; then + # set compiler flags per arch + echo "> setting performance system compiler flags" + case "$(uname -m)" in + "aarch64") + export CC=gcc + export CFLAGS='-mcpu=neoverse-v2 -O3 -pipe -Wno-error' + export CXX=g++ + export CXXFLAGS='-mcpu=neoverse-v2 -O3 -pipe -Wno-error' + export FCFLAGS='-mcpu=neoverse-v2 -O3 -pipe' + export FFLAGS='-mcpu=neoverse-v2 -O3 -pipe' + export LDFLAGS='-Wl,--as-needed' + ;; + "x86_64") + export CC=gcc + export CFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe -Wno-error' + export CXX=g++ + export CXXFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe -Wno-error' + export FCFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe' + export FFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe' + export LDFLAGS='-Wl,--as-needed' + ;; + *) + echo ">> Unknown system arch found $(uname -m)! Using basic flags only!" + export CC=gcc + export CFLAGS='-O3 -pipe -Wno-error' + export CXX=g++ + export CXXFLAGS='-O3 -pipe -Wno-error' + export FCFLAGS='-O3 -pipe' + export FFLAGS='-O3 -pipe' + export LDFLAGS='-Wl,--as-needed' + ;; + esac + echo ">> ${CC} ${CFLAGS}" + echo ">> ${CXX} ${CXXFLAGS}" + fi + # ------------------------------------------------------------- + + + # The following section will only work for versions >= 5.0-beta + # ------------------------------------------------------------- + if [[ "$V_MAJOR" -ge "5" ]]; then + #download blush weights, from zenodo + echo "> downloading blush weights" + mkdir -p "$PREFIX/torch/hub/checkpoints/relion_blush" + wget -q https://zenodo.org/records/10072731/files/blush_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_blush" \ + && gunzip "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt.gz" + mv "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt" "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0.ckpt" + touch "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0_installed.txt" + + #cp classranker that was downloaded on another machine before from BUILDBLOCK_DIR + echo "> downloading classranker" + mkdir -p "$PREFIX/torch/hub/checkpoints/relion_class_ranker" + wget -q ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/classranker_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_class_ranker" \ + && gunzip "$PREFIX/torch/hub/checkpoints/relion_class_ranker/classranker_v1.0.ckpt.gz" + mv "$PREFIX/torch/hub/checkpoints/relion_class_ranker/classranker_v1.0.ckpt" "$PREFIX/torch/hub/checkpoints/relion_class_ranker/v1.0.ckpt" + touch "$PREFIX/torch/hub/checkpoints/relion_class_ranker/v1.0_installed.txt" + + # fltk stuff + echo "> downloading FLTK" + mkdir -p "$SRC_DIR/external/fltk" + wget -q ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/fltk-1.3.5-source.tar.gz -P "$SRC_DIR/external/fltk/" + + # Install Miniconda + echo "> installing miniconda" + mkdir -p "$PREFIX/miniconda" + if [[ "$(uname -m)" =~ "aarch64" ]]; then + wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh -O "$PREFIX/miniconda/miniconda.sh" + else + wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + fi + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + # Setup conda env; switch into relion repo directory to capture local + # `.[vis]` pip package dependencies + echo "> building conda env" + pushd "$SRC_DIR" + "$PREFIX/miniconda/condabin/conda" env create -q -f environment.yml + "$PREFIX/miniconda/condabin/conda" env list + popd + fi - # Since ver3.0 relion cannot have ALTCPU and CUDA activated - # at the same time. Otherwise the configuration exits with - # an error. - if [[ "$V_MAJOR" -le "3" ]]; then - pbuild::add_configure_args "-DALTCPU=ON" - fi - - if [[ -n "$INTEL_VERSION" ]]; then - # Requires intel compiler - pbuild::add_configure_args "-DMKLFFT=ON" - fi + #--------------------------------------------------------------- } - -# vim: ts=4 sw=4 et diff --git a/EM/relion/files/config.yaml b/EM/relion/files/config.yaml new file mode 100644 index 0000000..e0242f6 --- /dev/null +++ b/EM/relion/files/config.yaml @@ -0,0 +1,162 @@ +--- +format: 1 +relion: + defaults: + group: EM + overlay: base + relstage: unstable + build_variants: first_match + versions: + 5.0.0-perf: + variants: + - overlay: Alps + target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + build_requires: + - cmake/3.23.2 + - git/2.37.0 + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + relstage: stable + runtime_deps: + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + configure_with: cmake + configure_args: + - "-DCMAKE_BUILD_TYPE=RELEASE" + - "-DCMAKE_CXX_FLAGS=${CXXFLAGS} -DNDEBUG" + - "-DCMAKE_C_FLAGS=${CFLAGS} -DNDEBUG" + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU + - "-DFETCH_WEIGHTS=OFF" + # does not work yet- just an idea... + - overlay: Alps + target_cpus: [aarch64] + systems: [gpu0.*.merlin7.psi.ch] + build_requires: + #- cmake/3.23.2 + #- git/2.37.0 + - openmpi/5.0.5 + - gcc/12.3.0 + - cuda/12.2.0 + relstage: unstable + runtime_deps: + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + configure_with: cmake + configure_args: + - "-DCMAKE_BUILD_TYPE=RELEASE" + - "-DCMAKE_CXX_FLAGS=${CXXFLAGS} -DNDEBUG" + - "-DCMAKE_C_FLAGS=${CFLAGS} -DNDEBUG" + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=90" # dep on the cuda arch of the oldest GPU + - "-DFETCH_WEIGHTS=OFF" + 5.0.0: + variants: + - overlay: Alps + target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + build_requires: + - cmake/3.23.2 + - git/2.37.0 + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + relstage: unstable + runtime_deps: + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + configure_with: cmake + configure_args: + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU + - "-DFETCH_WEIGHTS=OFF" + # does not work yet- just an idea... + - overlay: Alps + target_cpus: [aarch64] + systems: [gpu0.*.merlin7.psi.ch] + build_requires: + #- cmake/3.23.2 + #- git/2.37.0 + - openmpi/5.0.5 + - gcc/12.3.0 + - cuda/12.2.0 + relstage: unstable + runtime_deps: + - gcc/12.3.0 + - cuda/12.2.0 + - openmpi/5.0.5 + configure_with: cmake + configure_args: + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=90" # dep on the cuda arch of the oldest GPU + - "-DFETCH_WEIGHTS=OFF" + #MERLIN7 old (cray) + 5.0-2beta: + variants: + - overlay: Alps + systems: [gpu.*.merlin7.psi.ch] + build_requires: + - cmake/3.23.2 + - git/2.37.0 + - libfabric/1.22.0 + relstage: unstable + runtime_deps: + - gcc/12.3.0 + # - cudatoolkit/23.9_12.2 + - cuda/12.2.0 + configure_with: cmake + configure_args: + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU + #- "-DCudaTexture=ON" + - "-DFETCH_WEIGHTS=OFF" + #MERLIN6 + 5.0-1beta: + variants: + - systems: [merlin-.*.psi.ch] + build_requires: + - gcc/10.4.0 + - openmpi/4.1.4_slurm + - cuda/11.5.1 + - cmake/3.23.2 + - git/2.37.0 + relstage: unstable + runtime_deps: + - cuda/11.5.1 + - gcc/10.4.0 + - openmpi/4.1.4_slurm + configure_with: cmake + configure_args: + - "-DTORCH_HOME_PATH=${PREFIX}/torch" + - "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python" + - "-DFORCE_OWN_FFTW=ON" + - "-DFORCE_OWN_FLTK=ON" + - "-DCUDA=ON" + - "-DCUDA_ARCH=61" # dep on the cuda arch of the oldest GPU + - "-DCudaTexture=ON" + diff --git a/EM/relion/files/variants b/EM/relion/files/variants deleted file mode 100644 index c7e3efa..0000000 --- a/EM/relion/files/variants +++ /dev/null @@ -1,16 +0,0 @@ -relion/2.1.b1 deprecated gcc/4.9.4 openmpi/2.0.1 cuda/8.0.44 -relion/2.1 deprecated gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.0_beta deprecated gcc/4.9.4 openmpi/2.0.1 cuda/8.0.44 -relion/3.0.8 deprecated gcc/7.4.0 openmpi/3.1.4_merlin6 cuda/9.2.148 b:cmake/3.14.0 b:tiff/4.0.9 -relion/3.0.8-1 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1-beta deprecated gcc/7.4.0 openmpi/3.1.4_merlin6 cuda/9.2.148 b:cmake/3.14.0 b:tiff/4.0.9 -relion/3.1.0 deprecated gcc/7.5.0 openmpi/4.0.4_slurm cuda/10.0.130 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1.0-1 deprecated gcc/7.5.0 openmpi/4.0.4_slurm cuda/10.1.105 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1.1 deprecated gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1.1-1 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1.2 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/3.1.3 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/4.0-beta deprecated gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0 -relion/4.0.0 unstable gcc/11.2.0 openmpi/4.1.3_slurm cuda/11.5.1 b:cmake/3.23.2 b:tiff/4.3.0 b:git/2.37.0 -relion/4.0.1 unstable gcc/10.4.0 openmpi/4.1.4_slurm cuda/11.5.1 b:cmake/3.23.2 b:tiff/4.3.0 b:git/2.37.0 - diff --git a/EM/relion/modulefile b/EM/relion/modulefile index 9042d98..53760e2 100644 --- a/EM/relion/modulefile +++ b/EM/relion/modulefile @@ -3,7 +3,7 @@ module-whatis "3D reconstructions or 2D class averages in electron cryo-microscopy (cryo-EM)" module-url "https://www2.mrc-lmb.cam.ac.uk/relion/index.php/Main_Page" module-license "GPLv2 license" -module-maintainer "Spencer Bliven " +module-maintainer "Greta Assmann " module-help " RELION (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a @@ -25,10 +25,10 @@ Scheres(2012) JSB http://www.sciencedirect.com/science/article/pii/S104784771200 " setenv RELION_QUEUE_USE yes -setenv RELION_QUEUE_NAME gpu +setenv RELION_QUEUE_NAME general-x64 setenv RELION_QSUB_COMMAND sbatch setenv RELION_THREAD_MAX 44 -setenv RELION_QSUB_EXTRA_COUNT 2 +setenv RELION_QSUB_EXTRA_COUNT 4 setenv RELION_QSUB_EXTRA1 "Max Time" setenv RELION_QSUB_EXTRA1_DEFAULT "1-00:00:00" setenv RELION_QSUB_EXTRA1_HELP "Maximum time before the job is killed by slurm. Default: 1-00:00:00" @@ -36,12 +36,15 @@ setenv RELION_QSUB_EXTRA2 "Extra Slurm Args" setenv RELION_QSUB_EXTRA2_DEFAULT "" setenv RELION_QSUB_EXTRA2_HELP "Any additional arguments to pass to slurm" setenv RELION_SCRATCH_DIR /scratch -setenv RELION_UNBLUR_EXECUTABLE /opt/psi/EM/Unblur/1.0.2/bin/unblur_openmp_7_17_15.exe -setenv RELION_SUMMOVIE_EXECUTABLE /opt/psi/EM/Summovie/1.0.2/bin/sum_movie_openmp_7_17_15.exe setenv RELION_CTFFIND_EXECUTABLE /opt/psi/EM/ctffind4/4.1.8/bin/ctffind -setenv RELION_GCTF_EXECUTABLE /opt/psi/EM/Gctf/1.06/bin/Gctf +#also has internal version, depending on what users want... dont know if it works setenv RELION_RESMAP_EXECUTABLE /opt/psi/EM/ResMap/1.1.4/bin/ResMap - # Version-specific variables -setenv RELION_QSUB_TEMPLATE /opt/psi/EM/relion/$V/scripts/multi_gpu.sh -setenv RELION_MOTIONCOR2_EXECUTABLE /opt/psi/EM/MotionCor2/1.4.0/bin/MotionCor2 +setenv RELION_QSUB_TEMPLATE /opt/psi/overlays/Alps/EM/relion/$V/scripts/multi_gpu.sh + +setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.6.4/bin/MotionCor2" + +setenv RELION_TOPAZ_EXECUTABLE /opt/psi/overlays/Alps/EM/relion/$V/miniconda/envs/relion-5.0/bin/topaz +setenv RELION_PYTHON_EXECUTABLE /opt/psi/overlays/Alps/EM/relion/$V/miniconda/envs/relion-5.0/bin/python +setenv RELION_TORCH_HOME_PATH /opt/psi/overlays/Alps/EM/relion/$V/torch/ + diff --git a/EM/tomodrgn/README.md b/EM/tomodrgn/README.md new file mode 100644 index 0000000..f4d5526 --- /dev/null +++ b/EM/tomodrgn/README.md @@ -0,0 +1,13 @@ + Installation remarks for Tomodrgn: + +1.) function in tomodrgn/analysis.py is not valid with matplotlib v3.8 anymore, this is why the function is substituted in the build script: +sed -i 's/cbar.draw_all/cbar._draw_all/' tomodrgn/analysis.py + +2.) the tomodrgn quicktest script can be exectued by : +python /opt/psi/EM/tomodrgn/0.2.2/tomodrgn/testing/quicktest.py +REMARK: This file was changed in order to provide the argument --datadir /opt/psi/EM/tomodrgn/0.2.2/tomodrgn/testing/, otherwise it will look for the "data" folder in the current working dir. + +3.) quicktest is run without the two arguments: --num-workers (dafault =0) and --prefetch-factor (default should be None, but is actually 2), which throws an error,was fixed by changing the default of --prefetch-factor to None in the file /opt/psi/EM/tomodrgn/0.2.2/miniconda/envs/tomodrgn_0.2.2/lib/python3.9/site-packages/tomodrgn/commands/train_vae.py + + + diff --git a/EM/tomodrgn/build b/EM/tomodrgn/build new file mode 100755 index 0000000..aec16fa --- /dev/null +++ b/EM/tomodrgn/build @@ -0,0 +1,34 @@ +#!/usr/bin/env modbuild + + +pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "tomodrgn_$V" -f "$BUILDBLOCK_DIR/environment.yaml" + source "$PREFIX/miniconda/etc/profile.d/conda.sh" + conda activate "tomodrgn_$V" + + #CP SOURCE CODE + mkdir "$PREFIX/tomodrgn" + cd "$PREFIX/tomodrgn" + cp -r "$SRC_DIR"/* . + #FIX MATPLOTLIB VERSION issue + sed -i 's/cbar.draw_all/cbar._draw_all/' tomodrgn/analysis.py + #INSTALL IN ENV + pip install . + +} + +#DO NOTHING +pbuild::compile(){ + : +} + +pbuild::install(){ + : +} diff --git a/EM/tomodrgn/environment.yaml b/EM/tomodrgn/environment.yaml new file mode 100644 index 0000000..1ed6b23 --- /dev/null +++ b/EM/tomodrgn/environment.yaml @@ -0,0 +1,18 @@ +channels: + - pytorch + - conda-forge + - defaults +dependencies: + - pytorch-gpu>=1.11.0 + - cudatoolkit>=11.0 + - pandas + - seaborn + - scikit-learn + - umap-learn + - ipython_genutils + - notebook + - pip + - pip: + - ipyvolume>=0.6.0 + - pythreejs>=2.4.2 + diff --git a/EM/tomodrgn/files/config.yaml b/EM/tomodrgn/files/config.yaml new file mode 100644 index 0000000..273ff2e --- /dev/null +++ b/EM/tomodrgn/files/config.yaml @@ -0,0 +1,11 @@ +format: 1 +tomodrgn: + deaults: + group: EM + overlay: base + relstage: unstable + urls: + - url: https://github.com/bpowell122/tomodrgn/archive/refs/tags/v${V_PKG}.tar.gz + name: tomodrgn-${V_PKG}.tar.gz + versions: + 0.2.2: diff --git a/EM/tomodrgn/modulefile b/EM/tomodrgn/modulefile new file mode 100644 index 0000000..4871b84 --- /dev/null +++ b/EM/tomodrgn/modulefile @@ -0,0 +1,34 @@ +#%Module1.0 + +module-whatis "TomoDRGN - analyzing structural heterogeneity in cryo-electron sub-tomograms" +module-url "https://github.com/bpowell122/tomodrgn" +module-license "-" +module-maintainer "Greta Assmann " + +module-help "https://github.com/bpowell122/tomodrgn" + + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "source \"\${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + + +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate $P_$V;\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} + + diff --git a/EM/topaz/README.md b/EM/topaz/README.md new file mode 100644 index 0000000..7b5063d --- /dev/null +++ b/EM/topaz/README.md @@ -0,0 +1,34 @@ +# TOPAZ + +The topaz module is build for using it with the cryosparc software. An executable path to the topaz binary needs to be provided in cryosparc. + +## Adding New Versions + +Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script. +IMPORTANT: Build it on the GPU node , otherwise the pytorch installation will not enable GPU support. + +## HINTS + +Current successful environment.yaml file: + +channels: + - tbepler + - pytorch +dependencies: + - python=3.6 + - cudatoolkit + - topaz + - pytorch + +- specifing cudatoolkit version of 11.8 failed for GPU support (see below) +- specifing higher python/cudatoolkit versions lead to higher pytorch versions, which again failed for topaz to run successful (https://discuss.cryosparc.com/t/topaz-train-typeerror-concat-takes-1-positional-argument-but-2-were-given/11240/18) + +## Versions + +Nov. 2024: 0.2.5 (TOPAZ) with +``` +python3.6 +cudatoolkit 11.3.1 h2bc3f7f_2 +pytorch 1.10.2 py3.6_cuda11.3_cudnn8.2.0_0 +pytorch-mutex 1.0 cuda +``` diff --git a/EM/topaz/build b/EM/topaz/build new file mode 100755 index 0000000..789c7bd --- /dev/null +++ b/EM/topaz/build @@ -0,0 +1,27 @@ +#!/usr/bin/env modbuild + + +pbuild::configure() { + #MINICONDA INSTALL + mkdir -p "$PREFIX/miniconda" + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh" + bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/" + + + #CREATE ENV , make sure to source the "correct" conda.sh + "$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml" + +} + +#DO NOTHING +pbuild::compile(){ + : +} + +pbuild::install(){ + : +} + + + + diff --git a/EM/topaz/environment.yaml b/EM/topaz/environment.yaml new file mode 100644 index 0000000..8f19db7 --- /dev/null +++ b/EM/topaz/environment.yaml @@ -0,0 +1,8 @@ +channels: + - tbepler + - pytorch +dependencies: + - python=3.6 + - cudatoolkit + - topaz + - pytorch diff --git a/EM/topaz/files/config.yaml b/EM/topaz/files/config.yaml new file mode 100644 index 0000000..6841a46 --- /dev/null +++ b/EM/topaz/files/config.yaml @@ -0,0 +1,13 @@ +--- +format: 1 +topaz: + defaults: + group: EM + overlay: base + relstage: unstable + versions: + 0.2.5: + variants: + - overlay: Alps + systems: [.*.merlin7.psi.ch] + relstage: unstable diff --git a/EM/topaz/modulefile b/EM/topaz/modulefile new file mode 100644 index 0000000..4527b50 --- /dev/null +++ b/EM/topaz/modulefile @@ -0,0 +1,34 @@ +#%Module + +module-whatis "A pipeline for particle detection in cryo-electron microscopy images using convolutional neural networks trained from positive and unlabeled examples. Topaz also includes methods for micrograph and tomogram denoising using deep denoising models." +module-url "https://github.com/tbepler/topaz" +module-license "https://github.com/tbepler/topaz/blob/master/LICENSE" +module-maintainer "Greta Assmann " + +module-help "Particle Picker for CryoEM. Used with Cryosparc" + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + puts stdout "conda(){ :; };" + puts stdout "set +u" + puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n" + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + + +switch [module-info mode] { + "load" { + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate ${P}_${V};\n" + } + "unload" - + "remove" { + puts stdout "conda deactivate;\n" + } +} + diff --git a/HDF5/H5hut/files/variants.merlin6 b/HDF5/H5hut/files/variants.merlin6 index 6ccc2b5..262952c 100644 --- a/HDF5/H5hut/files/variants.merlin6 +++ b/HDF5/H5hut/files/variants.merlin6 @@ -2,3 +2,4 @@ H5hut/2.0.0rc6_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm hdf5/1. H5hut/2.0.0rc6_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm hdf5/1.10.7_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.12 b:parmetis/4.0.3_slurm H5hut/2.0.0rc6_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm hdf5/1.10.8_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17 +H5hut/2.0.0rc6_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm hdf5/1.10.8_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17 diff --git a/HDF5/H5hut/files/variants.rhel6 b/HDF5/H5hut/files/variants.rhel6 index 97c47d1..27e09a6 100644 --- a/HDF5/H5hut/files/variants.rhel6 +++ b/HDF5/H5hut/files/variants.rhel6 @@ -23,3 +23,4 @@ H5hut/2.0.0rc6 deprecated gcc/{7.5.0,8.4.0,9.3.0,10.1.0} openmpi/3.1.6 hdf5/1.1 H5hut/2.0.0rc6 stable gcc/10.3.0 openmpi/4.0.5 hdf5/1.10.7 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.12 b:parmetis/4.0.3 H5hut/2.0.0rc6 stable gcc/10.4.0 openmpi/4.1.4 hdf5/1.10.8 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17 +H5hut/2.0.0rc6 unstable gcc/10.4.0 openmpi/4.1.5 hdf5/1.10.8 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17 diff --git a/HDF5/trilinos/build b/HDF5/trilinos/build index 34afa1c..af23e67 100755 --- a/HDF5/trilinos/build +++ b/HDF5/trilinos/build @@ -1,9 +1,9 @@ #!/usr/bin/env modbuild pbuild::set_download_url \ - "https://github.com/$P/$P/tarball/$P-release-${V//./-}" \ + "https://github.com/trilinos/Trilinos/archive/refs/tags/$P-release-${V_PKG//./-}.tar.gz" \ "$P-${V_PKG}.tar.gz" - +# https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-13-4-0.tar.gz pbuild::set_sha256sum \ "trilinos-12.12.1.tar.gz:c8f2029fa36230b9f384c56139aaa33111227bcf653e73f7daf3c9efdecc1d2d" @@ -28,59 +28,99 @@ pbuild::configure() { config_args+=( "-DLAPACK_INCLUDE_DIRS:PATH=${LAPACK_INCLUDE_DIRS}" ) config_args+=( "-DLAPACK_LIBRARY_NAMES:STRING=${LAPACK_LIBRARY_NAMES}" ) fi - - if (( V_MAJOR == 12 && V_MINOR >= 12)); then - config_args+=( "-DTrilinos_ENABLE_SEACAS:BOOL=OFF" ) - config_args+=( "-DTrilinos_ENABLE_OpenMP:BOOL=OFF" ) - config_args+=( "-DKokkos_ENABLE_Serial:BOOL=ON" ) - config_args+=( "-DKokkos_ENABLE_OpenMP:BOOL=OFF" ) - config_args+=( "-DKokkos_ENABLE_Pthread:BOOL=OFF" ) - config_args+=( "-DKokkos_ENABLE_Cuda:BOOL=OFF" ) - config_args+=( "-DKokkos_ENABLE_Cuda_UVM:BOOL=OFF" ) - config_args+=( "-DTpetra_INST_SERIAL:BOOL=ON" ) - config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) - config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) - fi - PARMETIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include" PARMETIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libparmetis.a" METIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include/metis" METIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libmetis.a" + + if pbuild::version_lt 12.12.0; then + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + elif pbuild::version_ge 12.12.0; then + + config_args+=( "-DGtest_SKIP_INSTALL:BOOL=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor:STRING=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor_Use_By_Default:STRING=ON" ) + config_args+=( "-DTpetra_ENABLE_DEPRECATED_CODE:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON" ) + config_args+=( "-DTpetra_ENABLE_TESTS:BOOL=OFF" ) + config_args+=( "-DTpetra_ENABLE_EXAMPLES:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_INT:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_LONG:BOOL=ON" ) + config_args+=( "-DTpetra_INST_INT_LONG_LONG:BOOL=OFF" ) + + config_args+=( "-DKokkos_ENABLE_Serial:BOOL=ON" ) + config_args+=( "-DKokkos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Pthread:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_UVM:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_Lambda:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_SERIAL:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_SEACAS:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + fi + cmake \ -D CMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ -DCMAKE_CXX_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ -DCMAKE_C_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ - -DCMAKE_CXX_STANDARD:STRING="11" \ + -DCMAKE_CXX_STANDARD:STRING="14" \ -DCMAKE_Fortran_FLAGS:STRING="-fPIC" \ - -DTPL_ENABLE_DLlib:BOOL=OFF \ - -DTPL_ENABLE_QT:BOOL=OFF \ - -DTPL_ENABLE_MPI:BOOL=ON \ - -DTPL_ENABLE_BLAS:BOOL=ON \ - -DTPL_ENABLE_LAPACK:BOOL=ON \ - -DTPL_ENABLE_METIS:BOOL=ON \ - -DTPL_ENABLE_ParMETIS:BOOL=ON \ - -DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS \ - -DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES \ - -DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS \ - -DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES \ - -DTrilinos_ENABLE_Amesos:BOOL=ON \ - -DTrilinos_ENABLE_Amesos2:BOOL=ON \ - -DTrilinos_ENABLE_AztecOO:BOOL=ON \ - -DTrilinos_ENABLE_Belos:BOOL=ON \ - -DTrilinos_ENABLE_Epetra:BOOL=ON \ - -DTrilinos_ENABLE_EpetraExt:BOOL=ON \ - -DTrilinos_ENABLE_Galeri:BOOL=ON \ - -DTrilinos_ENABLE_Ifpack:BOOL=ON \ - -DTrilinos_ENABLE_Isorropia:BOOL=ON \ - -DTrilinos_ENABLE_ML:BOOL=ON \ - -DTrilinos_ENABLE_MueLu:BOOL=ON \ - -DTrilinos_ENABLE_NOX:BOOL=ON \ - -DTrilinos_ENABLE_Optika:BOOL=OFF \ - -DTrilinos_ENABLE_Teuchos:BOOL=ON \ - -DTrilinos_ENABLE_Tpetra:BOOL=ON \ - -DTrilinos_ENABLE_TESTS:BOOL=OFF \ "${config_args[@]}" \ "${SRC_DIR}" || exit 1 } diff --git a/HDF5/trilinos/build-xml b/HDF5/trilinos/build-xml new file mode 100755 index 0000000..df930b9 --- /dev/null +++ b/HDF5/trilinos/build-xml @@ -0,0 +1,123 @@ +#!/usr/bin/env modbuild + + +declare -rx AR=ar + +pbuild::configure() { + declare config_args=() + if [[ "${OS}" == "Linux" ]]; then + BLAS_PREFIX="${OPENBLAS_PREFIX}" + BLAS_INCLUDE_DIRS="${BLAS_PREFIX}/include" + BLAS_LIBRARY_DIRS="${BLAS_PREFIX}/lib64" + BLAS_LIBRARY_NAMES="openblas" + LAPACK_PREFIX="${OPENBLAS_PREFIX}" + + LAPACK_INCLUDE_DIRS="${LAPACK_PREFIX}/include" + LAPACK_LIBRARY_DIRS="${LAPACK_PREFIX}/lib64" + LAPACK_LIBRARY_NAMES="openblas" + config_args+=( "-DBLAS_LIBRARY_DIRS:PATH=${BLAS_LIBRARY_DIRS}" ) + config_args+=( "-DBLAS_INCLUDE_DIRS:PATH=${BLAS_LIBRARY_DIRS}" ) + config_args+=( "-DBLAS_LIBRARY_NAMES:STRING=${BLAS_LIBRARY_NAMES}" ) + config_args+=( "-DLAPACK_LIBRARY_DIRS:PATH=${LAPACK_LIBRARY_DIRS}" ) + config_args+=( "-DLAPACK_INCLUDE_DIRS:PATH=${LAPACK_INCLUDE_DIRS}" ) + config_args+=( "-DLAPACK_LIBRARY_NAMES:STRING=${LAPACK_LIBRARY_NAMES}" ) + fi + PARMETIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include" + PARMETIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libparmetis.a" + METIS_INCLUDE_DIRS="${PARMETIS_PREFIX}/include" + METIS_LIBRARIES="${PARMETIS_PREFIX}/lib/libmetis.a" + + + if pbuild::version_lt 12.12.0; then + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + elif pbuild::version_ge 12.12.0; then + + config_args+=( "-DGtest_SKIP_INSTALL:BOOL=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor:STRING=ON" ) + config_args+=( "-DMueLu_ENABLE_Kokkos_Refactor_Use_By_Default:STRING=ON" ) + config_args+=( "-DTpetra_ENABLE_DEPRECATED_CODE:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON" ) + config_args+=( "-DTpetra_ENABLE_TESTS:BOOL=OFF" ) + config_args+=( "-DTpetra_ENABLE_EXAMPLES:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_INT:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_INT_LONG:BOOL=ON" ) + config_args+=( "-DTpetra_INST_INT_LONG_LONG:BOOL=OFF" ) + + config_args+=( "-DKokkos_ENABLE_Serial:BOOL=ON" ) + config_args+=( "-DKokkos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Pthread:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_UVM:BOOL=OFF" ) + config_args+=( "-DKokkos_ENABLE_Cuda_Lambda:BOOL=OFF" ) + config_args+=( "-DTpetra_INST_SERIAL:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_DLlib:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_QT:BOOL=OFF" ) + config_args+=( "-DTPL_ENABLE_MPI:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_BLAS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_LAPACK:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_METIS:BOOL=ON" ) + config_args+=( "-DTPL_ENABLE_ParMETIS:BOOL=ON" ) + config_args+=( "-DTPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES" ) + config_args+=( "-DTPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS" ) + config_args+=( "-DTPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES" ) + config_args+=( "-DTrilinos_ENABLE_SEACAS:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_OpenMP:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Amesos2:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_AztecOO:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Belos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Epetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_EpetraExt:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Galeri:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Ifpack:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Isorropia:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_ML:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_MueLu:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_NOX:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Optika:BOOL=OFF" ) + config_args+=( "-DTrilinos_ENABLE_Teuchos:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_Tpetra:BOOL=ON" ) + config_args+=( "-DTrilinos_ENABLE_TESTS:BOOL=OFF" ) + fi + + cmake \ + -D CMAKE_BUILD_TYPE:STRING=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ + -DCMAKE_CXX_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ + -DCMAKE_C_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \ + -DCMAKE_CXX_STANDARD:STRING="17" \ + -DCMAKE_Fortran_FLAGS:STRING="-fPIC" \ + "${config_args[@]}" \ + "${SRC_DIR}" || exit 1 +} + +pbuild::install_docfiles Copyright.txt LICENSE README RELEASE_NOTES + diff --git a/HDF5/trilinos/files/config.yaml b/HDF5/trilinos/files/config.yaml new file mode 100644 index 0000000..c253e01 --- /dev/null +++ b/HDF5/trilinos/files/config.yaml @@ -0,0 +1,33 @@ +--- +# yamllint disable rule:line-length +format: 1 +trilinos: + defaults: + group: HDF5 + overlay: base + relstage: stable + systems: [rhel7, rhel8, rhel9] + urls: + - url: https://github.com/trilinos/Trilinos/archive/refs/tags/$P-release-${V_MAJOR}-${V_MINOR}-${V_PATCHLVL}.tar.gz + name: $P-${V_PKG}.tar.gz + + versions: + 14.4.0: + variants: + - relstage: unstable + overlay: devel + group_deps: + compiler: {gcc: [10.4.0]} + mpi: {openmpi: [4.1.5]} + hdf5: {hdf5: [1.10.8]} + build_requires: [cmake/3.25.2, OpenBLAS/0.3.23, parmetis/4.0.3] + + 12.12.1: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [1.10.7, 2.1.2, 3.0.0]} + hdf5: {hdf5: [1.10.1]} + build_requires: [hdf5/1.10.1, cmake/3.6.3, OpenBLAS/0.2.20, parmetis/4.0.3] diff --git a/HDF5/trilinos/files/variants.merlin6 b/HDF5/trilinos/files/variants.merlin6 index 1747888..8da63f5 100644 --- a/HDF5/trilinos/files/variants.merlin6 +++ b/HDF5/trilinos/files/variants.merlin6 @@ -1,2 +1,6 @@ -trilinos/12.18.1_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm hdf5/1.10.6_slurm b:cmake/3.15.5 b:OpenBLAS/0.3.10 b:parmetis/4.0.3_slurm -trilinos/13.0.1_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm hdf5/1.10.8_slurm b:cmake/3.20.5 b:OpenBLAS/0.3.21 b:parmetis/4.0.3_slurm +trilinos/12.18.1_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm hdf5/1.10.6_slurm b:cmake/3.15.5 b:OpenBLAS/0.3.10 b:parmetis/4.0.3_slurm +trilinos/13.0.1_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm hdf5/1.10.7_slurm b:cmake/3.20.5 b:OpenBLAS/0.3.15 b:parmetis/4.0.3_slurm +trilinos/13.0.1_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm hdf5/1.10.8_slurm b:cmake/3.20.5 b:OpenBLAS/0.3.21 b:parmetis/4.0.3_slurm +trilinos/13.4.0_slurm unstable gcc/10.3.0 openmpi/4.0.5-1_slurm hdf5/1.10.7_slurm b:cmake/3.20.5 b:OpenBLAS/0.3.15 b:parmetis/4.0.3_slurm +trilinos/13.4.0_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm hdf5/1.10.8_slurm b:cmake/3.20.5 b:OpenBLAS/0.3.23 b:parmetis/4.0.3_slurm + diff --git a/HDF5/trilinos/files/variants.rhel6 b/HDF5/trilinos/files/variants.rhel6 index ee61ecc..2dac5f5 100644 --- a/HDF5/trilinos/files/variants.rhel6 +++ b/HDF5/trilinos/files/variants.rhel6 @@ -18,4 +18,5 @@ trilinos/12.18.1 stable gcc/{7.5.0,8.4.0,9.3.0,10.1.0} openmpi/3.1.6 hdf5/1.10 trilinos/13.0.1 stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} openmpi/4.0.5 hdf5/1.10.7 b:cmake/3.15.5 b:OpenBLAS/0.3.15 b:parmetis/4.0.3 trilinos/13.0.1 stable gcc/10.4.0 openmpi/4.1.4 hdf5/1.10.8 b:cmake/3.15.5 b:OpenBLAS/0.3.21 b:parmetis/4.0.3 +trilinos/13.4.0 unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0} openmpi/4.1.5 hdf5/1.10.8 b:cmake/3.20.5 b:OpenBLAS/0.3.23 b:parmetis/4.0.3 diff --git a/Libraries/gmp/build b/Libraries/gmp/build index 5f4ffcc..6e021f3 100755 --- a/Libraries/gmp/build +++ b/Libraries/gmp/build @@ -1,12 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://gmplib.org/download/$P/$P-$V_PKG.tar.bz2" -pbuild::add_to_group 'Libraries' - -# use system gcc to compile -declare -rx CC=gcc -declare -rx CPP=/usr/bin/cpp - -pbuild::add_configure_args "--disable-shared" -pbuild::add_configure_args "--with-pic" - diff --git a/Libraries/gmp/files/config.yaml b/Libraries/gmp/files/config.yaml new file mode 100644 index 0000000..4af444c --- /dev/null +++ b/Libraries/gmp/files/config.yaml @@ -0,0 +1,37 @@ +format: 1 +gmp: + defaults: + group: Libraries + overlay: base + relstage: stable + configure_args: + - --disable-shared + - --with-pic + - CC=gcc + - CPP=/usr/bin/cpp + docfiles: [] + urls: + - url: https://gmplib.org/download/$P/$P-$V_PKG.tar.bz2 + shasums: + gmp-6.3.0.tar.bz2: ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb + gmp-6.2.1.tar.bz2: eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c + gmp-6.2.0.tar.bz2: f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea + gmp-6.1.2.tar.gz: 97904147e7216a58cf5870a810aa1347488fe714d710f53d42f72247be7b77f7 + gmp-6.1.2.tar.bz2: 5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2 + gmp-6.1.2.tar.bz2.sig: 7de6a71ccadc8e1d761713a9fce2ef67de2dcc8cbaee51d464d360df07f5e951 + gmp-6.1.2-1.tar.gz: 97904147e7216a58cf5870a810aa1347488fe714d710f53d42f72247be7b77f7 + gmp-6.1.2-1.tar.bz2: 97904147e7216a58cf5870a810aa1347488fe714d710f53d42f72247be7b77f7 + gmp-6.1.1.tar.lz: 2ac8d815c670bbfecc2e796b9bcd4869eecd31299868248b0b221bc64a2570b2 + gmp-6.1.1.tar.bz2: a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6 + gmp-6.1.0.tar.bz2: 498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8 + gmp-6.0.0.tar.bz2: 7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf + gmp-5.1.3.tar.bz2: 752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 + gmp-5.1.1.tar.bz2: a0d4779f48b36519dfaceb5f987a7c76fcac223258bebea3bb2244310970afad + + versions: + 6.2.1;6.3.0: + + 5.1.1;6.0.0;6.1.0;6.1.1;6.1.2;6.1.2-1;6.2.0: + config: + relstage: deprecated + diff --git a/Libraries/gmp/files/variants b/Libraries/gmp/files/variants deleted file mode 100644 index 349dcfc..0000000 --- a/Libraries/gmp/files/variants +++ /dev/null @@ -1,8 +0,0 @@ -gmp/5.1.1 stable -gmp/6.0.0 stable -gmp/6.1.0 stable -gmp/6.1.1 stable -gmp/6.1.2 stable -gmp/6.1.2-1 stable -gmp/6.2.0 stable -gmp/6.2.1 stable diff --git a/Libraries/hwloc/build b/Libraries/hwloc/build index c65a014..6e021f3 100755 --- a/Libraries/hwloc/build +++ b/Libraries/hwloc/build @@ -1,13 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://download.open-mpi.org/release/${P}/v${V_MAJOR}.${V_MINOR}/${P}-${V}.tar.gz" -pbuild::add_to_group 'Libraries' - -pbuild::install_docfiles 'README' 'AUTHORS' 'NEWS' 'COPYING' 'VERSION' - -pbuild::pre_configure() { - pbuild::add_configure_args "--enable-netloc" - pbuild::add_configure_args "--enable-plugins" -} - - diff --git a/Libraries/hwloc/build-legacy b/Libraries/hwloc/build-legacy new file mode 100755 index 0000000..c65a014 --- /dev/null +++ b/Libraries/hwloc/build-legacy @@ -0,0 +1,13 @@ +#!/usr/bin/env modbuild + +pbuild::set_download_url "https://download.open-mpi.org/release/${P}/v${V_MAJOR}.${V_MINOR}/${P}-${V}.tar.gz" +pbuild::add_to_group 'Libraries' + +pbuild::install_docfiles 'README' 'AUTHORS' 'NEWS' 'COPYING' 'VERSION' + +pbuild::pre_configure() { + pbuild::add_configure_args "--enable-netloc" + pbuild::add_configure_args "--enable-plugins" +} + + diff --git a/Libraries/hwloc/files/config.yaml b/Libraries/hwloc/files/config.yaml new file mode 100644 index 0000000..ba2cd31 --- /dev/null +++ b/Libraries/hwloc/files/config.yaml @@ -0,0 +1,26 @@ +format: 1 +hwloc: + defaults: + group: Libraries + relstage: stable + docfiles: [README, AUTHORS, NEWS, COPYING, VERSION] + urls: + - url: https://download.open-mpi.org/release/${P}/v${V_MAJOR}.${V_MINOR}/${P}-${V}.tar.gz + configure_args: + - --enable-netloc + - --enable-plugins + shasums: + hwloc-2.11.1.tar.gz: 9f320925cfd0daeaf3a3d724c93e127ecac63750c623654dca0298504aac4c2c + hwloc-2.9.1.tar.gz: a440e2299f7451dc10a57ddbfa3f116c2a6c4be1bb97c663edd3b9c7b3b3b4cf + hwloc-2.7.1.tar.gz: 4cb0a781ed980b03ad8c48beb57407aa67c4b908e45722954b9730379bc7f6d5 + versions: + 2.11.1: + config: + relstage: unstable + build_requires: [cuda/12.1.1] + 2.9.1: + config: + build_requires: [cuda/12.1.1] + 2.7.1: + config: + build_requires: [cuda/11.5.1] diff --git a/Libraries/hwloc/files/variants.merlin6 b/Libraries/hwloc/files/variants.merlin6 index e754fa1..919640f 100644 --- a/Libraries/hwloc/files/variants.merlin6 +++ b/Libraries/hwloc/files/variants.merlin6 @@ -1,2 +1,2 @@ -hwloc/2.7.1 unstable b:cuda/11.5.1 -hwloc/2.9.1 unstable b:cuda/12.1.1 +hwloc/2.7.1 stable b:cuda/11.5.1 +hwloc/2.9.1 stable b:cuda/12.1.1 diff --git a/Libraries/libevent/build b/Libraries/libevent/build index 1239be0..6e021f3 100755 --- a/Libraries/libevent/build +++ b/Libraries/libevent/build @@ -1,7 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://github.com/libevent/libevent/releases/download/release-$V-stable/$P-$V-stable.tar.gz" -pbuild::add_to_group 'Libraries' - -pbuild::install_docfiles 'LICENSE' - diff --git a/Libraries/libevent/files/config.yaml b/Libraries/libevent/files/config.yaml new file mode 100644 index 0000000..009dd39 --- /dev/null +++ b/Libraries/libevent/files/config.yaml @@ -0,0 +1,30 @@ +format: 1 +libevent: + defaults: + group: Libraries + relstage: stable + configure_args: + - --enable-shared + - --enable-static + docfiles: + - LICENSE + urls: + - url: https://github.com/libevent/libevent/releases/download/release-$V-stable/$P-$V-stable.tar.gz + shasums: + libevent-2.1.8-stable.tar.gz: 965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2 + libevent-2.1.12-stable.tar.gz: 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb + versions: + 2.1.12: + config: + runtime_deps: [] + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + build_requires: [] + relstage: stable + - systems: [rhel.*] + build_requires: [openssl/1.1.1k] + 2.1.8: + config: + build_requires: [openssl/1.0.2r] diff --git a/Libraries/libfabric/build b/Libraries/libfabric/build index 0580efc..b6e33ef 100755 --- a/Libraries/libfabric/build +++ b/Libraries/libfabric/build @@ -1,7 +1,36 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://github.com/ofiwg/libfabric/releases/download/v$V/$P-$V.tar.bz2" -pbuild::add_to_group 'Libraries' - -pbuild::install_docfiles 'COPYING' 'AUTHORS' 'README' 'NEWS.md' +# Check 'version-to-gitcommit.txt' +# - If version exists, we will compile directly from GIT cloned commit. +# - If version does not exist, install from GIT repository package (tag). +GITURL=$(grep -E "^${V}" files/from-git.txt | awk '{print $2}') +BRANCH=$(grep -E "^${V}" files/from-git.txt | awk '{print $3}') +CHERRY=$(grep -E "^${V}" files/from-git.txt | awk -F'cherry-pick:' '{print $2}') +CHERRY_COMMIT=$(echo "$CHERRY" | awk -F'|' '{print $1}') +CHERRY_REPO=$(echo "$CHERRY" | awk -F'|' '{print $2}') +if [[ -n ${GITURL} ]]; then + pbuild::pre_prep() { + if [[ ! -f ${PMODULES_DISTFILESDIR}/${P}-${V}.tar.bz2 ]]; then + git clone ${GITURL} ${P} + cd ${P} + if [[ -n ${BRANCH} ]]; then + git fetch -a + git checkout ${BRANCH} + fi + if [[ -n ${CHERRY_REPO} ]]; then + git remote add remotetmp $CHERRY_REPO + git fetch --all + fi + + if [[ -n ${CHERRY_COMMIT} ]]; then + git cherry-pick $CHERRY_COMMIT + fi + + ./autogen.sh + cd .. + tar --exclude-vcs --remove-files -cvf ${PMODULES_DISTFILESDIR}/${P}-${V}.tar ${P} + bzip2 ${PMODULES_DISTFILESDIR}/${P}-${V}.tar + fi + } +fi diff --git a/Libraries/libfabric/build-xml b/Libraries/libfabric/build-xml new file mode 100755 index 0000000..6e021f3 --- /dev/null +++ b/Libraries/libfabric/build-xml @@ -0,0 +1,2 @@ +#!/usr/bin/env modbuild + diff --git a/Libraries/libfabric/files/config.yaml b/Libraries/libfabric/files/config.yaml new file mode 100644 index 0000000..cebfb3f --- /dev/null +++ b/Libraries/libfabric/files/config.yaml @@ -0,0 +1,44 @@ +format: 1 +libfabric: + defaults: + group: Libraries + relstage: stable + compile_in_sourcetree: true + docfiles: + - AUTHORS + - README + - COPYING + - NEWS.md + urls: + - url: https://github.com/ofiwg/libfabric/releases/download/v${V}/${P}-${V}.tar.bz2 + shasums: + libfabric-1.13.0.tar.bz2: 0c68264ae18de5c31857724c754023351614330bd61a50b40cef2b5e8f63ab28 + libfabric-1.18.0.tar.bz2: 912fb7c7b3cf2a91140520962b004a1c5d2f39184adbbd98ae5919b0178afd43 + versions: + 1.18.0: + config: + build_requires: [gcc/10.4.0] + 1.22.0: + config: + relstage: unstable + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + use_flags: [merlin7] + build_requires: [gcc/12.3.0, libfabric/1.15.2.0] + configure_args+: + - --enable-cxi + 2.0.0: + config: + relstage: unstable + urls: + - url: https://github.com/ofiwg/libfabric/releases/download/v${V}alpha/$P-${V}alpha.tar.bz2 + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + use_flags: [merlin7] + build_requires: [gcc/12.3.0, libfabric/1.15.2.0] + configure_args+: + - --enable-cxi diff --git a/Libraries/libfabric/files/from-git.txt b/Libraries/libfabric/files/from-git.txt new file mode 100644 index 0000000..9e55042 --- /dev/null +++ b/Libraries/libfabric/files/from-git.txt @@ -0,0 +1,2 @@ +1.22.0 https://github.com/thomasgillis/libfabric.git dev-cxi +# 1.22.0 https://github.com/ofiwg/libfabric.git main cherry-pick:5793243aec20c4fee126aa3093ff07bb5889f154|https://github.com/raffenet/libfabric.git diff --git a/Libraries/libfabric/files/variants b/Libraries/libfabric/files/variants index ab94958..4f4731e 100644 --- a/Libraries/libfabric/files/variants +++ b/Libraries/libfabric/files/variants @@ -1 +1 @@ -libfabric/1.18.0 unstable b:gcc/10.4.0 +libfabric/1.18.0 stable b:gcc/10.4.0 diff --git a/Libraries/libidn2/build b/Libraries/libidn2/build new file mode 100755 index 0000000..6e021f3 --- /dev/null +++ b/Libraries/libidn2/build @@ -0,0 +1,2 @@ +#!/usr/bin/env modbuild + diff --git a/Libraries/libidn2/files/config.yaml b/Libraries/libidn2/files/config.yaml new file mode 100644 index 0000000..3cbfa1c --- /dev/null +++ b/Libraries/libidn2/files/config.yaml @@ -0,0 +1,26 @@ +format: 1 +libidn2: + defaults: + group: Libraries + relstage: stable + docfiles: + - ABOUT-NLS + - AUTHORS + - CONTRIBUTING.md + - COPYING + - COPYING.LESSERv3 + - COPYING.unicode + - COPYINGv2 + - ChangeLog + - INSTALL + - NEWS + - README + - README.md + urls: + - url: https://ftp.gnu.org/gnu/libidn/libidn2-${V_PKG}.tar.gz + shasums: + libidn2-2.3.4.tar.gz: 93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f + versions: + 2.3.4: + config: + relstage: unstable diff --git a/Libraries/libidn2/files/variants b/Libraries/libidn2/files/variants new file mode 100644 index 0000000..a1fcd25 --- /dev/null +++ b/Libraries/libidn2/files/variants @@ -0,0 +1 @@ +libpng/1.6.34 unstable diff --git a/Libraries/libidn2/modulefile b/Libraries/libidn2/modulefile new file mode 100644 index 0000000..8a52e93 --- /dev/null +++ b/Libraries/libidn2/modulefile @@ -0,0 +1,13 @@ +#%Module1.0 + +module-whatis "PNG reference library" +module-url "http://www.libpng.org/pub/png/libpng.html" +module-license "Open source" +module-maintainer "Achim Gsell " + +module-help " +libpng is the official PNG reference library. It supports almost all +PNG features, is extensible, and has been extensively tested for over +23 years. +" + diff --git a/Libraries/libpsl/build b/Libraries/libpsl/build new file mode 100755 index 0000000..6e021f3 --- /dev/null +++ b/Libraries/libpsl/build @@ -0,0 +1,2 @@ +#!/usr/bin/env modbuild + diff --git a/Libraries/libpsl/files/config.yaml b/Libraries/libpsl/files/config.yaml new file mode 100644 index 0000000..30532b8 --- /dev/null +++ b/Libraries/libpsl/files/config.yaml @@ -0,0 +1,16 @@ +format: 1 +libpsl: + defaults: + group: Libraries + overlay: base + relstage: stable + docfiles: [] + urls: + - url: https://github.com/rockdaboot/$P/releases/download/${V_PKG}/$P-${V_PKG}.tar.gz + + shasums: + + versions: + 0.21.5: + config: + diff --git a/Libraries/libpsl/modulefile b/Libraries/libpsl/modulefile new file mode 100644 index 0000000..2bff60b --- /dev/null +++ b/Libraries/libpsl/modulefile @@ -0,0 +1,16 @@ +#%Module1.0 + +module-whatis "C library to handle the Public Suffix List" +module-url "https://github.com/rockdaboot/libpsl" +module-license "See https://github.com/rockdaboot/libpsl/blob/master/LICENSE" +module-maintainer "Achim Gsell " + +module-help " +A Public Suffix List is a collection of Top Level Domains (TLDs) suffixes. +TLDs include Global Top Level Domains (gTLDs) like .com and .net; Country +Top Level Domains (ccTLDs) like .de and .cn; and Brand Top Level Domains +like .apple and .google. Brand TLDs allows users to register their own +top level domain that exist at the same level as ICANN's gTLDs. Brand TLDs +are sometimes referred to as Vanity Domains. +" + diff --git a/Libraries/mpc/build b/Libraries/mpc/build index 3257c64..6e021f3 100755 --- a/Libraries/mpc/build +++ b/Libraries/mpc/build @@ -1,11 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://ftp.gnu.org/gnu/${P}/${P}-${V_PKG}.tar.gz" -pbuild::add_to_group 'Libraries' - -pbuild::pre_configure() { - pbuild::add_configure_args "--with-gmp=${GMP_PREFIX}" - pbuild::add_configure_args "--with-mpfr=${MPFR_PREFIX}" - pbuild::add_configure_args "--disable-shared" -} - diff --git a/Libraries/mpc/files/config.yaml b/Libraries/mpc/files/config.yaml new file mode 100644 index 0000000..a971912 --- /dev/null +++ b/Libraries/mpc/files/config.yaml @@ -0,0 +1,31 @@ +format: 1 +mpc: + defaults: + group: Libraries + overlay: base + relstage: stable + configure_args: + - --disable-shared + - --with-pic + - --with-gmp=${GMP_PREFIX} + - --with-mpfr=${MPFR_PREFIX} + docfiles: [] + urls: + - url: http://ftp.gnu.org/gnu/${P}/${P}-${V_PKG}.tar.gz + + shasums: + mpc-1.3.1.tar.gz: ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8 + mpc-1.2.1.tar.gz: 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 + mpc-1.1.0.tar.gz: 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e + mpc-1.0.3.tar.gz: 617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3 + mpc-1.0.2.tar.gz: b561f54d8a479cee3bc891ee52735f18ff86712ba30f036f8b8537bae380c488 + mpc-1.0.1.tar.gz: ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff + + versions: + 1.2.1;1.3.1-1: + config: + build_requires: [gmp/6.3.0, mpfr/4.2.1] + 1.0.{2,3};1.0.3-2;1.1.0-{1..4};1.3.1: + config: + relstage: deprecated + diff --git a/Libraries/mpc/files/variants b/Libraries/mpc/files/variants deleted file mode 100644 index cd04296..0000000 --- a/Libraries/mpc/files/variants +++ /dev/null @@ -1,11 +0,0 @@ -mpc/1.0.2 stable b:gmp/5.1.1 b:mpfr/3.1.2 -mpc/1.0.3 stable b:gmp/6.1.0 b:mpfr/3.1.4 -mpc/1.0.3-1 stable b:gmp/6.1.1 b:mpfr/3.1.4 -mpc/1.0.3-2 stable b:gmp/6.1.2 b:mpfr/3.1.5 -mpc/1.1.0 stable b:gmp/6.1.2 b:mpfr/4.0.0 -mpc/1.1.0-1 stable b:gmp/6.1.2 b:mpfr/4.0.1 -mpc/1.1.0-2 stable b:gmp/6.1.2-1 b:mpfr/4.0.1-1 -mpc/1.1.0-3 stable b:gmp/6.1.2-1 b:mpfr/4.0.2 -mpc/1.1.0-4 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 -mpc/1.2.1 stable b:gmp/6.2.1 b:mpfr/4.1.0 -mpc/1.3.1 stable b:gmp/6.2.1 b:mpfr/4.2.0 diff --git a/Libraries/mpfr/build b/Libraries/mpfr/build index 425992c..6e021f3 100755 --- a/Libraries/mpfr/build +++ b/Libraries/mpfr/build @@ -1,12 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://www.mpfr.org/$P-${V_PKG}/$P-${V_PKG}.tar.xz" -pbuild::add_to_group 'Libraries' - -#module use 'Libraries' - -pbuild::pre_configure() { - pbuild::add_configure_args "--with-gmp=${GMP_PREFIX}" - pbuild::add_configure_args "--with-pic" - pbuild::add_configure_args "--disable-shared" -} diff --git a/Libraries/mpfr/files/config.yaml b/Libraries/mpfr/files/config.yaml new file mode 100644 index 0000000..3a5e858 --- /dev/null +++ b/Libraries/mpfr/files/config.yaml @@ -0,0 +1,36 @@ +format: 1 +mpfr: + defaults: + group: Libraries + overlay: base + relstage: stable + configure_args: + - --disable-shared + - --with-pic + - --with-gmp=${GMP_PREFIX} + docfiles: [] + urls: + - url: http://www.mpfr.org/$P-${V_PKG}/$P-${V_PKG}.tar.xz + + shasums: + mpfr-4.2.1.tar.xz: 277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2 + mpfr-4.2.0.tar.xz: 06a378df13501248c1b2db5aa977a2c8126ae849a9d9b7be2546fb4a9c26d993 + mpfr-4.1.0.tar.xz: 0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f + mpfr-4.0.2.tar.xz: 1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a + mpfr-4.0.2.tar.bz2: c05e3f02d09e0e9019384cdd58e0f19c64e6db1fd6f5ecf77b4b1c61ca253acc + mpfr-4.0.1.tar.xz: 67874a60826303ee2fb6affc6dc0ddd3e749e9bfcb4c8655e3953d0458a6e16e + mpfr-4.0.0.tar.bz2: 6aa31fbf3bd1f9f95bcfa241590a9d11cb0f874e2bb93b99c9e2de8eaea6d5fd + mpfr-3.1.5.tar.bz2: ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 + mpfr-3.1.4.tar.gz: 0d4de7e1476f79d24c38d5bc04a06fcc9a1bb9cf35fd654ceada29af03ad1844 + mpfr-3.1.3.tar.bz2: f63bb459157cacd223caac545cb816bcdb5a0de28b809e7748b82e9eb89b0afd + mpfr-3.1.2.tar.bz2: 79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b + mpfr-3.1.1.tar.bz2: 7b66c3f13dc8385f08264c805853f3e1a8eedab8071d582f3e661971c9acd5fd + + versions: + 4.1.0;4.2.0;4.2.1: + config: + build_requires: [gmp/6.3.0] + 3.1.{2..5};4.0.{0..1};4.0.1-1;4.0.2;4.0.2-{1..2}: + config: + relstage: deprecated + diff --git a/Libraries/mpfr/files/variants b/Libraries/mpfr/files/variants deleted file mode 100644 index 6f88c53..0000000 --- a/Libraries/mpfr/files/variants +++ /dev/null @@ -1,13 +0,0 @@ -mpfr/3.1.2 stable b:gmp/5.1.1 -mpfr/3.1.3 stable b:gmp/6.0.0 -mpfr/3.1.4 stable b:gmp/6.1.0 -mpfr/3.1.4-1 stable b:gmp/6.1.1 -mpfr/3.1.5 stable b:gmp/6.1.2 -mpfr/4.0.0 stable b:gmp/6.1.2 -mpfr/4.0.1 stable b:gmp/6.1.2 -mpfr/4.0.1-1 stable b:gmp/6.1.2-1 -mpfr/4.0.2 stable b:gmp/6.1.2-1 -mpfr/4.0.2-1 stable b:gmp/6.2.0 -mpfr/4.0.2-2 stable b:gmp/6.2.0 -mpfr/4.1.0 stable b:gmp/6.2.1 -mpfr/4.2.0 stable b:gmp/6.2.1 diff --git a/Libraries/ncurses/build b/Libraries/ncurses/build new file mode 100755 index 0000000..ca41f09 --- /dev/null +++ b/Libraries/ncurses/build @@ -0,0 +1,3 @@ +#!/usr/bin/env modbuild + +export LC_ALL=C diff --git a/Libraries/ncurses/files/config.yaml b/Libraries/ncurses/files/config.yaml new file mode 100644 index 0000000..7e6096b --- /dev/null +++ b/Libraries/ncurses/files/config.yaml @@ -0,0 +1,26 @@ +--- +format: 1 +ncurses: + defaults: + group: Libraries + overlay: base + relstage: stable + docfiles: [] + configure_args: + - --with-shared + - --disable-db-install + - --with-termlib + urls: + - url: https://invisible-island.net/archives/${P}/${P}-${V_PKG}.tar.gz + + shasums: + ncurses-6.5.tar.gz: 136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6 + ncurses-6.3.tar.gz: 97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059 + + versions: + 6.5: + config: + relstage: stable + 6.3: + config: + relstage: deprecated diff --git a/Libraries/ncurses/modulefile b/Libraries/ncurses/modulefile new file mode 100644 index 0000000..8095afb --- /dev/null +++ b/Libraries/ncurses/modulefile @@ -0,0 +1,12 @@ +#%Module1.0 + +module-whatis "GNU Mpc" +module-url "http://www.multiprecision.org" +module-license "GNU LGPL v3" +module-maintainer "Achim Gsell " + +module-help " +Gnu Mpc is a C library for the arithmetic of complex numbers with +arbitrarily high precision and correct rounding of the result. +" + diff --git a/Libraries/nettle/build-xml b/Libraries/nettle/build-xml new file mode 100755 index 0000000..a99bec2 --- /dev/null +++ b/Libraries/nettle/build-xml @@ -0,0 +1,6 @@ +#!/usr/bin/env modbuild + +# use system gcc to compile +declare -rx CC=gcc + +pbuild::add_configure_args "--disable-shared" diff --git a/Libraries/nettle/files/config.yaml b/Libraries/nettle/files/config.yaml new file mode 100644 index 0000000..ad0a590 --- /dev/null +++ b/Libraries/nettle/files/config.yaml @@ -0,0 +1,16 @@ +format: 1 +nettle: + defaults: + group: Libraries + relstage: stable + docfiles: [] + urls: + - url: https://ftp.gnu.org/gnu/nettle/nettle-${V_PKG}.tar.gz + shasums: + nettle-3.9.1.tar.gz: ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3 + versions: + 3.9.1: + config: + relstage: unstable + build_requires: [gmp/6.1.2-1] + diff --git a/Libraries/pmix/build b/Libraries/pmix/build index a058988..952d750 100755 --- a/Libraries/pmix/build +++ b/Libraries/pmix/build @@ -1,38 +1,20 @@ #!/usr/bin/env modbuild -echo "https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz" -pbuild::set_download_url "https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz" - -pbuild::add_to_group 'Libraries' - -(( version = (${V_MAJOR} * 100 + ${V_MINOR}) * 100 + V_PATCHLVL )) -if (( V_MAJOR > 1 )); then - pbuild::install_docfiles AUTHORS README.md LICENSE NEWS VERSION -else - pbuild::install_docfiles README LICENSE NEWS VERSION -fi - -pbuild::compile_in_sourcetree - pbuild::pre_configure() { - if [[ -n "${HWLOC_PREFIX}" ]]; then - pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" - fi + if [[ -v HWLOC_PREFIX ]]; then + pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" + fi - if [[ -n "${LIBEVENT_PREFIX}" ]]; then - pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" - fi + if [[ -v LIBEVENT_PREFIX ]]; then + pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" + fi - if [[ -n "${INTEL_VERSION}" ]]; then - pbuild::add_configure_args "CC=icc" - pbuild::add_configure_args "CXX=icpc" - pbuild::add_configure_args "FC=ifort" - pbuild::add_configure_args "F77=ifort" - pbuild::add_configure_args "F90=ifort" - # pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel" - fi - - # pbuild::add_configure_args "--enable-pmi-backward-compatibility" - pbuild::add_configure_args "--enable-shared" - pbuild::add_configure_args "--enable-static" + if [[ -v INTEL_VERSION ]]; then + pbuild::add_configure_args "CC=icc" + build::add_configure_args "CXX=icpc" + pbuild::add_configure_args "FC=ifort" + pbuild::add_configure_args "F77=ifort" + pbuild::add_configure_args "F90=ifort" + # pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel" + fi } diff --git a/Libraries/pmix/files/config.yaml b/Libraries/pmix/files/config.yaml new file mode 100644 index 0000000..e5c3cf5 --- /dev/null +++ b/Libraries/pmix/files/config.yaml @@ -0,0 +1,132 @@ +format: 1 +pmix: + defaults: + group: Libraries + relstage: stable + compile_in_sourcetree: true + configure_args: + - --enable-shared + docfiles: + - AUTHORS + - README.md + - LICENSE + - NEWS + - VERSION + urls: + - url: https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz + shasums: + pmix-1.2.5.tar.gz: d7337601c5b985743e6b6f79ec1a34dfc2aefbb2d04d40b2c0d5bd7100d268ed + pmix-2.2.5.tar.gz: db24480fa5be080e1ddcb273098992b69f8f21e4cd6b8df1682e836b303a2a6f + pmix-2.2.5.tar.gz: db24480fa5be080e1ddcb273098992b69f8f21e4cd6b8df1682e836b303a2a6f + pmix-3.2.3.tar.gz: 1325a1355d0794196bb47665053fdbc588f9183aa5385f3581b668427316306e + pmix-3.2.5.tar.gz: 61385a65b172bfbe8d5363c3cd8f7742cd81049ebb3d8acc0d25806935641584 + pmix-4.1.2.tar.gz: a7a6d5b322c261999ce0a6395c0ac7dc359c0ff61380ed4c6935430fb9f5f6e6 + pmix-4.2.3.tar.gz: fd45e18e483e42089d4059df9753d9be3cfb68297a05981b1d937e09f7716d5a + pmix-4.2.4.tar.gz: f1fe5fe817ac447ce8d3d88486a1c0d22227efd186e11062aa1f7b0f093089c6 + pmix-4.2.9.tar.gz: 00ddb36fb81c31519972079a218c3cdd903510fc3910abaf4d484068fa29e884 + pmix-5.0.3.tar.gz: d9b0b81ba45f58f44573796eb05858061ed7f47ea6b29af8058090023e35dfa9 + versions: + 1.2.5: + config: + relstage: removed + configure_args+: + - --enable-static + docfiles: + - README + - LICENSE + - NEWS + - VERSION + 2.2.5;3.2.3: + config: + relstage: unstable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [gcc/12.3.0, hwloc/2.11.1] + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + - systems: [rhel.*] + 3.2.5: + config: + relstage: unstable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [gcc/12.3.0, hwloc/2.11.1] + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + 4.1.2: + config: + relstage: stable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [hwloc/2.7.1] + 4.2.3: + config: + relstage: stable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [hwloc/2.9.1] + 4.2.4: + config: + relstage: stable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [gcc/10.4.0, hwloc/2.9.1] + 4.2.9: + config: + relstage: stable + configure_args+: + - --enable-static + runtime_deps: [libevent/2.1.12] + build_requires: [gcc/12.3.0, hwloc/2.11.1] + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + 5.0.3: + config: + relstage: stable + configure_args+: + - --enable-static=no + runtime_deps: [libevent/2.1.12] + build_requires: [gcc/12.3.0, hwloc/2.11.1] + variants: + - systems: [.*.merlin7.psi.ch] + overlay: Alps + use_overlays: [PSI] + configure_args+: + - --with-lustre + # - --with-cxi + # - --with-slingshot + # - --with-zlib + # - --with-jansson + # - --with-curl + - systems: [rhel.*] + # 5.0.4: + # config: + # relstage: unstable + # configure_args+: + # - --enable-static=no + # runtime_deps: [libevent/2.1.12] + # build_requires: [gcc/12.3.0, hwloc/2.11.1] + # variants: + # - systems: [.*.merlin7.psi.ch] + # overlay: Alps + # use_overlays: [PSI] + # configure_args+: + # - --with-lustre + # - --with-cxi + # - --with-cxi-libdir=/opt/cray/libfabric/1.15.2.0/include + # - --with-slingshot + # - --with-zlib + # # - --with-jansson + # # - --with-curl + # - systems: [rhel.*] diff --git a/Libraries/pmix/files/variants.merlin6 b/Libraries/pmix/files/variants.merlin6 index beb6bdd..def96fc 100644 --- a/Libraries/pmix/files/variants.merlin6 +++ b/Libraries/pmix/files/variants.merlin6 @@ -3,4 +3,4 @@ pmix/2.2.5 unstable libevent/2.1.12 pmix/3.2.3 unstable libevent/2.1.12 pmix/4.1.2 unstable libevent/2.1.12 b:hwloc/2.7.1 pmix/4.2.3 unstable libevent/2.1.12 b:hwloc/2.9.1 -pmix/4.2.4 unstable b:gcc/10.4.0 libevent/2.1.12 b:hwloc/2.9.1 +pmix/4.2.4 stable b:gcc/10.4.0 libevent/2.1.12 b:hwloc/2.9.1 diff --git a/Libraries/ucx/files/variants.merlin6 b/Libraries/ucx/files/variants.merlin6 index 467f758..c3574d0 100644 --- a/Libraries/ucx/files/variants.merlin6 +++ b/Libraries/ucx/files/variants.merlin6 @@ -12,11 +12,11 @@ ucx/1.11.2-3_slurm stable cuda/11.1.0 b:doxygen/1.9.2 b:knem/1.1.4 b ucx/1.12.1_slurm stable cuda/11.5.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 ucx/1.13.1_slurm stable b:cuda/11.5.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 -ucx/1.13.1-3_slurm unstable b:cuda/11.1.0 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 +ucx/1.13.1-3_slurm stable b:cuda/11.1.0 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 -ucx/1.14.0-5_slurm unstable b:cuda/11.5.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 -ucx/1.14.0_slurm removed b:cuda/12.1.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.3.0 -ucx/1.14.1_slurm unstable b:cuda/12.1.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.3.0 +ucx/1.14.0-5_slurm stable b:cuda/11.5.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.2.0 +ucx/1.14.1_slurm stable b:cuda/12.1.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.3.0 +ucx/1.15.0_slurm unstable b:cuda/12.1.1 b:doxygen/1.9.2 b:knem/1.1.4 b:GDRCopy/2.3.0 ucx/1.9.0_dgx deprecated cuda/11.1.0 b:doxygen/1.8.14 b:knem/1.1.4 ucx/1.10.0-1_dgx deprecated cuda/11.2.2 b:doxygen/1.8.14 b:knem/1.1.4 b:GDRCopy/2.2.0 diff --git a/MPI/MITHRA/build b/MPI/MITHRA/build index b0012bb..7cc7bdb 100755 --- a/MPI/MITHRA/build +++ b/MPI/MITHRA/build @@ -26,6 +26,9 @@ pbuild::configure() { : } +pbuild::install() { + make -e PREFIX="${PREFIX}" install +} # Local Variables: # mode: sh # sh-basic-offset: 8 diff --git a/MPI/MITHRA/files/variants.rhel6 b/MPI/MITHRA/files/variants.rhel6 index 6e1c60b..5fe91c4 100644 --- a/MPI/MITHRA/files/variants.rhel6 +++ b/MPI/MITHRA/files/variants.rhel6 @@ -2,3 +2,4 @@ MITHRA/2020.8.27 deprecated gcc/8.4.0 openmpi/3.1.6 MITHRA/2.0 stable gcc/8.4.0 openmpi/3.1.6 MITHRA/2.0 stable gcc/10.3.0 openmpi/4.0.5 MITHRA/2.0 stable gcc/10.4.0 openmpi/4.1.4 +MITHRA/2.0 unstable gcc/10.4.0 openmpi/4.1.5 diff --git a/MPI/MITHRA/files/variants.slurm b/MPI/MITHRA/files/variants.slurm index 20035f6..827ce72 100644 --- a/MPI/MITHRA/files/variants.slurm +++ b/MPI/MITHRA/files/variants.slurm @@ -2,3 +2,4 @@ MITHRA/2020.8.27_slurm deprecated gcc/8.4.0 openmpi/3.1.6_slurm MITHRA/2.0_slurm stable gcc/8.4.0 openmpi/3.1.6_slurm MITHRA/2.0_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm MITHRA/2.0_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm +MITHRA/2.0_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm diff --git a/MPI/amrex/build b/MPI/amrex/build index 5c04f24..a1e395d 100755 --- a/MPI/amrex/build +++ b/MPI/amrex/build @@ -10,7 +10,7 @@ pbuild::install_docfiles 'license.txt' pbuild::install_docfiles 'README.txt' pbuild::pre_prep() { - echo "OPENMPI_VERSION=${OPENMPI_VEERSION}" 1>&2 + echo "OPENMPI_VERSION=${OPENMPI_VERSION}" 1>&2 if pbuild::version_gt "${OPENMPI_VERSION}" '4.0.0'; then pbuild::add_patch "files/AMReX_ParallelDescriptor.patch" fi diff --git a/MPI/amrex/files/variants.merlin6 b/MPI/amrex/files/variants.merlin6 index c2f93ac..78772a7 100644 --- a/MPI/amrex/files/variants.merlin6 +++ b/MPI/amrex/files/variants.merlin6 @@ -1,4 +1,5 @@ amrex/18.07_3d_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm b:cmake/3.15.5 amrex/18.07_3d_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm b:cmake/3.20.5 amrex/18.07_3d_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm b:cmake/3.20.5 +amrex/18.07.1_3d_slurm unstable gcc/{10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm b:cmake/3.20.5 diff --git a/MPI/amrex/files/variants.rhel6 b/MPI/amrex/files/variants.rhel6 index 39b3be3..01343a8 100644 --- a/MPI/amrex/files/variants.rhel6 +++ b/MPI/amrex/files/variants.rhel6 @@ -17,4 +17,5 @@ amrex/18.07_3d stable gcc/{7.3.0,8.2.0} mpich/3.2.1 b:cmake/3.9.6 amrex/18.07_3d stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6 b:cmake/3.15.5 amrex/18.07_3d stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} openmpi/4.0.5 b:cmake/3.15.5 amrex/18.07_3d stable gcc/10.4.0 openmpi/4.1.4 b:cmake/3.15.5 +amrex/18.07.1_3d unstable gcc/10.4.0 openmpi/4.1.5 b:cmake/3.15.5 diff --git a/MPI/boost/files/variants.merlin6 b/MPI/boost/files/variants.merlin6 index c90fec5..e3c4b2a 100644 --- a/MPI/boost/files/variants.merlin6 +++ b/MPI/boost/files/variants.merlin6 @@ -9,3 +9,6 @@ boost/1.76.0_slurm stable gcc/{10.2.0,10.3.0} openmpi/4.0.5-1_slur boost/1.79.0_slurm stable gcc/{9.3.0,10.3.0} openmpi/4.1.3_slurm b:zlib/1.2.11 boost/1.79.0_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm b:zlib/1.2.13 boost/1.79.0_slurm unstable intel/22.1 impi/22.1 b:zlib/1.2.11 + +boost/1.81.0_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm b:zlib/1.2.13 +boost/1.82.0_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm b:zlib/1.2.13 diff --git a/MPI/boost/files/variants.rhel6 b/MPI/boost/files/variants.rhel6 index 8bd4f52..b8bbc04 100644 --- a/MPI/boost/files/variants.rhel6 +++ b/MPI/boost/files/variants.rhel6 @@ -14,3 +14,4 @@ boost/1.73.0 stable gcc/{7.5.0,8.4.0,9.3.0,10.1.0} openmpi/3.1.6 b:zlib/1.2.11 boost/1.76.0 stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} openmpi/4.0.5 b:zlib/1.2.11 boost/1.79.0 stable gcc/10.4.0 openmpi/4.1.4 b:zlib/1.2.13 +boost/1.82.0 unstable gcc/10.4.0 openmpi/4.1.5 b:zlib/1.2.13 diff --git a/MPI/fftw/files/variants.merlin6 b/MPI/fftw/files/variants.merlin6 index 30dc0e0..7a4a719 100644 --- a/MPI/fftw/files/variants.merlin6 +++ b/MPI/fftw/files/variants.merlin6 @@ -7,4 +7,4 @@ fftw/3.3.9_merlin6 unstable gcc/{8.4.0,9.3.0,10.2.0,10.3.0,11.2.0} openmpi/4.0.5 fftw/3.3.10 unstable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} openmpi/4.0.5 fftw/3.3.10_merlin6 unstable gcc/{8.4.0,9.3.0,10.2.0,10.3.0,11.2.0} openmpi/4.0.5-1_slurm -fftw/3.3.10_merlin6 unstable gcc/10.4.0 openmpi/4.1.5_slurm +fftw/3.3.10_merlin6 unstable gcc/{10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm diff --git a/MPI/hdf5/build b/MPI/hdf5/build index 59d4910..eeccb3c 100755 --- a/MPI/hdf5/build +++ b/MPI/hdf5/build @@ -45,6 +45,11 @@ pbuild::pre_configure() { pbuild::add_configure_args "CXXFLAGS=-fPIC" pbuild::add_configure_args "FCFLAGS=-fPIC" ;; + nvhpc ) + pbuild::add_configure_args "CFLAGS=-fPIC" + pbuild::add_configure_args "CXXFLAGS=-fPIC" + pbuild::add_configure_args "FCFLAGS=-fPIC" + ;; esac if [[ "${enable_fortran}" == 'yes' ]]; then diff --git a/MPI/hdf5/build-yaml b/MPI/hdf5/build-yaml new file mode 100755 index 0000000..188d8f6 --- /dev/null +++ b/MPI/hdf5/build-yaml @@ -0,0 +1,56 @@ +#!/usr/bin/env modbuild + +pbuild::install_docfiles ACKNOWLEDGMENTS +pbuild::install_docfiles COPYING +pbuild::install_docfiles MANIFEST +pbuild::install_docfiles README* + +pbuild::pre_configure() { + pbuild::add_configure_args "CC=${MPICC}" + pbuild::add_configure_args "CXX=${MPICXX}" + + pbuild::add_configure_args "--enable-shared" + pbuild::add_configure_args "--enable-parallel" + pbuild::add_configure_args "--enable-cxx" + pbuild::add_configure_args "--enable-unsupported" + #pbuild::add_configure_args "--enable-threadsafe" + pbuild::add_configure_args "--with-pic" + + local enable_fortran='yes' + + case "${COMPILER}" in + clang-macos ) + enable_fortran='no' + # we do not have Fortran in Xcode + ;; + pgi ) + # PGI uses GCC's include files, some object files and + # the STL implementation! + # The PGI C pre-processor is broken and doesn't work + # for HDF5. We use the pre-processor of the underlying + # GCC... + # This is a bit hackish! + # + # The following eval sets GCCDIR! Which is something + # like: + # /opt/psi/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 + # + eval $(pgcc -show 2>/dev/null | \ + awk '/^GCCDIR[[:space:]]*=/{gsub(/[[:space:]]/,""); print $0}') + pbuild::add_configure_args "CPP=${GCCDIR%%/..*}/cpp" + pbuild::add_configure_args "CFLAGS=-fPIC" + pbuild::add_configure_args "CXXFLAGS=-fPIC" + pbuild::add_configure_args "FCFLAGS=-fPIC" + ;; + esac + + if [[ "${enable_fortran}" == 'yes' ]]; then + pbuild::add_configure_args "F77=${MPIF77}" + pbuild::add_configure_args "F90=${MPIF90}" + pbuild::add_configure_args "FC=${MPIFC}" + pbuild::add_configure_args "FORTRAN=${MPIFORTRAN}" + pbuild::add_configure_args "--enable-fortran" + fi + +} + diff --git a/MPI/hdf5/files/config.yaml b/MPI/hdf5/files/config.yaml new file mode 100644 index 0000000..45c1ab5 --- /dev/null +++ b/MPI/hdf5/files/config.yaml @@ -0,0 +1,287 @@ +--- +# yamllint disable rule:line-length +format: 1 +hdf5: + defaults: + group: MPI + overlay: base + relstage: stable + systems: [rhel7, rhel8, rhel9] + urls: + - url: https://support.hdfgroup.org/ftp/HDF5/releases/$P-${V_MAJOR}.${V_MINOR}/$P-${V_PKG}/src/$P-${V_PKG}.tar.bz2 + shasums: + hdf5-1.8.10-patch1.tar.bz2: 292afb3615ad9e68f4d5d18ebb11e4a73f2aece39f2da3875a457ff1e109fc41 + hdf5-1.8.12.tar.bz2: 10a369a4fc207bb09245f57c758e587420e06dfc0e445e337a58b0848b75a949 + hdf5-1.8.13.tar.bz2: c2f5a412107aba6f99fd7a4a9db6ce5f5fc8171ec931472784e5839d26aa17ef + hdf5-1.8.14.tar.bz2: 53722cb9f5977af2908f92fc1a3f8c597800a5cb448cfe5c75060d6335bb9bab + hdf5-1.8.15-patch1.tar.bz2: a5afc630c4443547fff15e9637b5b10404adbed4c00206d89517d32d6668fb32 + hdf5-1.8.15.1.tar.bz2: 289307fd70cef6715e0a28371635c8038153a4f25069319e34b0bc675a23e8ed + hdf5-1.8.16.tar.bz2: 13aaae5ba10b70749ee1718816a4b4bfead897c2fcb72c24176e759aec4598c6 + hdf5-1.8.17.tar.bz2: fc35dd8fd8d398de6b525b27cc111c21fc79795ad6db1b1f12cb15ed1ee8486a + hdf5-1.8.18.tar.bz2: 01c6deadf4211f86922400da82c7a8b5b50dc8fc1ce0b5912de3066af316a48c + hdf5-1.8.19.tar.bz2: 59c03816105d57990329537ad1049ba22c2b8afe1890085f0c022b75f1727238 + hdf5-1.8.20.tar.bz2: a4f2db7e0a078aa324f64e0216a80731731f73025367fa94d158c9b1d3fbdf6f + hdf5-1.8.21.tar.bz2: e5b1b1dee44a64b795a91c3321ab7196d9e0871fe50d42969761794e3899f40d + hdf5-1.10.0.tar.bz2: 31ff70dc7c7317066ab3bda3eec4498a8b099c69c1271b008ed3df388e743d28 + hdf5-1.10.1.tar.bz2: 9c5ce1e33d2463fb1a42dd04daacbc22104e57676e2204e3d66b1ef54b88ebf2 + hdf5-1.10.2.tar.bz2: 1cad5b7bfdf128dfc53cd16fba48f6e7ae4e93c75c371d9ec8dfc4df0c1fcb71 + hdf5-1.10.3.tar.bz2: c65cdcce4724a57fd3f8da9f0d109b497be30092acb9fac634d1291190d905a9 + hdf5-1.10.4.tar.bz2: 1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df + hdf5-1.10.5.tar.bz2: 68d6ea8843d2a106ec6a7828564c1689c7a85714a35d8efafa2fee20ca366f44 + hdf5-1.10.6.tar.bz2: 09d6301901685201bb272a73e21c98f2bf7e044765107200b01089104a47c3bd + hdf5-1.10.6_slurm.tar.bz2: d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3 + hdf5-1.10.7.tar.bz2: 02018fac7e5efc496d9539a303cfb41924a5dadffab05df9812096e273efa55e + hdf5-1.10.8.tar.bz2: 66ec544b195a4cb9f6ffed034fd82e52429d6112747c2996ab69853f606e546b + hdf5-1.10.11.tar.bz2: 0afc77da5c46217709475bbefbca91c0cb6f1ea628ccd8c36196cf6c5a4de304 + hdf5-1.12.0.tar.bz2: 97906268640a6e9ce0cde703d5a71c9ac3092eded729591279bf2e3ca9765f61 + hdf5-1.12.2.tar.bz2: 3016ea56a175d2ca7f2568c8016420f7a2aad8f95e214fe7fa5485f4b80fbe51 + hdf5-1.13.1.tar.bz2: e16973ec893e2d5aa9c8dc73e196db9b99a605578e7317b421c713936f8bf57d + + versions: + 1.8.12: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.7.4, 4.8.3, 4.8.4, 4.9.2]} + mpi: {openmpi: [1.6.5, 1.8.2, 1.8.4]} + - group_deps: + compiler: {gcc: [4.8.2]} + mpi: {openmpi: [1.6.5]} + - group_deps: + compiler: {gcc: [4.7.4, 4.8.4, gcc/4.9.2, 5.1.0], intel: [15.2]} + mpit: {mpich: [3.1.4]} + - group_deps: + compiler: {gcc: [4.8.5]} + mpi: {openmpi: [1.8.8]} + - group_deps: + compiler: {gcc: [5.1.0], intel: [15.2]} + mpi: {openmpi: [1.6.5]} + - group_deps: + compiler: {gcc: [5.1.0], intel: [15.2, 15.3]} + mpi: {openmpi: [1.8.4]} + 1.8.13: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.7.4, 4.8.3, 4.8.4]} + mpi: {openmpi: [1.6.5, 1.8.2, 1.8.4]} + 1.8.14: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.7.4, 4.8.3, 4.8.4, 4.9.2]} + mpi: {openmpi: [1.6.5, 1.8.2, 1.8.4]} + - group_deps: + compiler: {gcc: [4.7.4, 4.8.4, 4.9.2, 5.1.0], intel: [15.2]} + mpi: {mpich: [3.1.4]} + - group_deps: + compiler: {gcc: [5.1.0], intel: [15.2]} + mpi: {openmpi: [1.6.5]} + - group_deps: + compiler: {gcc: [5.1.0], intel: [15.2, 15.3]} + mpi: {openmpi: [1.8.4]} + + 1.8.15-patch1: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.7.4, 4.8.4, 4.9.2, 5.1.0]} + mpi: {mpich: [3.1.4], openmpi: [1.6.5, 1.8.4]} + - group_deps: + compiler: {gcc: [4.8.5, 4.9.3, 5.2.0]} + mpi: {openmpi: [1.10.0]} + - group_deps: + compiler: {intel: [15.3]} + mpi: {openmpi: [1.6.5]} + + 1.8.15.1: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.9.3, 5.2.0]} + mpi: {openmpi: [1.8.8]} + + 1.8.16: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.8.5, 4.9.3]} + mpi: {openmpi: [1.8.8]} + - group_deps: + compiler: {gcc: [4.9.2]} + mpi: {openmpi: [1.8.4]} + - group_deps: + compiler: {gcc: [4.8.5, 5.3.0, 6.1.0]} + mpi: {openmpi: [1.10.2]} + + 1.8.17: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.8.5, 4.9.3]} + mpi: {openmpi: [1.8.8]} + - group_deps: + compiler: {gcc: [4.8.5, 5.3.0, 6.1.0, 6.2.0]} + mpi: {openmpi: [1.10.2]} + - group_deps: + compiler: {gcc: [4.8.5, 4.9.4, 5.4.0, 6.2.0]} + mpi: {openmpi: [1.10.4]} + + 1.8.18: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.8.5, 4.9.4, 5.4.0, 6.2.0]} + mpi: {openmpi: [1.10.4]} + + 1.8.20: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.8.5]} + mpi: {openmpi: [1.10.4]} + + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [1.10.7, 2.1.5, 3.1.3], mpich: [3.2.1]} + + - group_deps: + compiler: {intel: [18.4]} + mpi: {impi: [18.4]} + + 1.10.0: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [4.8.5, 5.3.0, 6.1.0]} + mpi: {openmpi: [1.10.2]} + + 1.10.1: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [1.10.7, 2.1.2, 3.0.0, 3.0.1]} + - group_deps: + compiler: {intel: [17.4]} + mpi: {openmpi: [1.10.7, 2.1.2, 3.0.0]} + - group_deps: + compiler: {pgi: [18.5]} + mpi: {pgi-mpi: [18.5]} + + 1.10.2: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [3.0.1]} + + 1.10.3: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {openmpi: [3.1.2]} + - group_deps: + compiler: {intel: [17.4]} + mpi: {intel-mpi: [17.4]} + + 1.10.4: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [5.5.0, 7.3.0, 8.2.0]} + mpi: {openmpi: [3.1.3]} + - group_deps: + compiler: {gcc: [7.3.0]} + mpi: {mpich: [3.3]} + + 1.10.5: + config: + relstage: deprecated + variants: + - group_deps: + compiler: {gcc: [7.4.0, 8.3.0]} + mpi: {openmpi: [3.1.4]} + + 1.10.6: + variants: + - group_deps: + compiler: {gcc: [7.5.0, 8.4.0, 9.3.0, 10.1.0]} + mpi: {openmpi: [3.1.6]} + + 1.10.6_slurm: + variants: + - group_deps: + compiler: {gcc: [7.5.0, 8.4.0, 9.3.0]} + mpi: {openmpi: [3.1.6_slurm]} + + 1.10.7: + variants: + - group_deps: + compiler: {gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0, 10.3.0]} + mpi: {openmpi: [4.0.5]} + + 1.10.7_slurm: + variants: + - group_deps: + compiler: {gcc: [10.3.0]} + mpi: {openmpi: [4.0.5-1_slurm]} + + 1.10.8: + variants: + - group_deps: + compiler: {gcc: [10.4.0]} + mpi: {openmpi: [4.1.4]} + - relstage: unstable + group_deps: + compiler: {gcc: [10.4.0]} + mpi: {openmpi: [4.1.5]} + + 1.10.8_slurm: + variants: + - group_deps: + compiler: {gcc: [10.4.0]} + mpi: {openmpi: [4.1.4_slurm]} + - relstage: unstable + group_deps: + compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]} + mpi: {openmpi: [4.1.5_slurm]} + + 1.10.11: + variants: + - relstage: unstable + group_deps: + compiler: {gcc: [12.3.0]} + mpi: {openmpi: [4.1.5]} + + 1.12.0: + variants: + - group_deps: + compiler: {gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0]} + mpi: {openmpi: [4.0.5]} + - relstage: unstable + group_deps: + compiler: {pgi: [21.5]} + mpi: {pgi-mpi: [21.5]} + + 1.13.1_slurm: + variants: + - relstage: unstable + group_deps: + compiler: {gcc: [11.2.0]} + mpi: {openmpi: [4.1.3_slurm]} diff --git a/MPI/hdf5/files/variants.merlin6 b/MPI/hdf5/files/variants.merlin6 index 675c4e5..b2a0a13 100644 --- a/MPI/hdf5/files/variants.merlin6 +++ b/MPI/hdf5/files/variants.merlin6 @@ -1,4 +1,5 @@ hdf5/1.10.6_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm hdf5/1.10.7_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm hdf5/1.10.8_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm +hdf5/1.10.8_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm hdf5/1.13.1_slurm unstable gcc/11.2.0 openmpi/4.1.3_slurm diff --git a/MPI/hdf5/files/variants.rhel6 b/MPI/hdf5/files/variants.rhel6 index 02b83bd..6b44112 100644 --- a/MPI/hdf5/files/variants.rhel6 +++ b/MPI/hdf5/files/variants.rhel6 @@ -60,5 +60,6 @@ hdf5/1.10.7 stable gcc/{7.5.0,8.4.0,9.3.0,10.2.0} openmpi/4.0.5 hdf5/1.10.7 stable gcc/10.3.0 openmpi/4.0.5 hdf5/1.10.8 stable gcc/10.4.0 openmpi/4.1.4 +hdf5/1.10.8 unstable gcc/10.4.0 openmpi/4.1.5 hdf5/1.12.0 stable gcc/{7.5.0,8.4.0,9.3.0,10.2.0} openmpi/4.0.5 diff --git a/MPI/parmetis/build b/MPI/parmetis/build index 6a57b34..3003530 100755 --- a/MPI/parmetis/build +++ b/MPI/parmetis/build @@ -1,21 +1,5 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://glaros.dtc.umn.edu/gkhome/fetch/sw/$P/$P-${V_PKG}.tar.gz" - -pbuild::add_to_group 'MPI' - -case ${V_MAJOR} in -3 ) - pbuild::install_docfiles CHANGES INSTALL LICENSE.txt README VERSION - ;; -4 ) - pbuild::install_docfiles Changelog Install.txt LICENSE.txt - ;; -* ) - std::die 4 "Unsupported major version!" - ;; -esac - pbuild::configure() { CC=$MPICC CXX=$MPICXX diff --git a/MPI/parmetis/build-legacy b/MPI/parmetis/build-legacy new file mode 100755 index 0000000..6a57b34 --- /dev/null +++ b/MPI/parmetis/build-legacy @@ -0,0 +1,71 @@ +#!/usr/bin/env modbuild + +pbuild::set_download_url "http://glaros.dtc.umn.edu/gkhome/fetch/sw/$P/$P-${V_PKG}.tar.gz" + +pbuild::add_to_group 'MPI' + +case ${V_MAJOR} in +3 ) + pbuild::install_docfiles CHANGES INSTALL LICENSE.txt README VERSION + ;; +4 ) + pbuild::install_docfiles Changelog Install.txt LICENSE.txt + ;; +* ) + std::die 4 "Unsupported major version!" + ;; +esac + +pbuild::configure() { + CC=$MPICC + CXX=$MPICXX + F77=$MPIF77 + F90=$MPIF90 + FC=$MPIFC + FORTRAN=$MPIFORTRAN + if (( V_MAJOR == 4 )) ; then + cmake \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DMETIS_PATH="${SRC_DIR}/metis" \ + -DGKLIB_PATH="${SRC_DIR}/metis/GKlib" \ + "${SRC_DIR}" \ + || exit 1 + fi +} + +pbuild::compile() { + CC=$MPICC + CXX=$MPICXX + F77=$MPIF77 + F90=$MPIF90 + FC=$MPIFC + FORTRAN=$MPIFORTRAN + if (( V_MAJOR == 3 )) ; then + cd "${SRC_DIR}" + make -e -j3 || exit 1 + + mkdir -p $PREFIX/include/metis + mkdir -p $PREFIX/lib + + cp *.h $PREFIX/include + cp METISLib/*.h $PREFIX/include/metis + cp lib*.a $PREFIX/lib + elif (( V_MAJOR == 4 )); then + make -j3 || exit 1 + make install + + LIBMETIS_A=$(find . -name libmetis.a) + METIS_H=$(find "${SRC_DIR}" -name metis.h) + + install -m 0644 $METIS_H $PREFIX/include + install -m 0644 $LIBMETIS_A $PREFIX/lib + else + std::die 42 "Unsupported version: $V" + fi +} + +pbuild::install() { + : +} + +# vim: filetype=sh diff --git a/MPI/parmetis/files/config.yaml b/MPI/parmetis/files/config.yaml new file mode 100644 index 0000000..c351c87 --- /dev/null +++ b/MPI/parmetis/files/config.yaml @@ -0,0 +1,27 @@ +--- +# yamllint disable rule:line-length +format: 1 +parmetis: + defaults: + group: MPI + overlay: base + relstage: stable + systems: [merlin-*, ra-*] + docfiles: [Changelog, Install.txt, LICENSE.txt] + urls: + - url: http://glaros.dtc.umn.edu/gkhome/fetch/sw/$P/$P-${V_PKG}.tar.gz + name: $P-${V_PKG}.tar.gz + + shasums: + - parmetis-4.0.3.tar.gz: f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f + + versions: + 4.0.3_slurm: + variants: + - group_deps: + compiler: + gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0] + mpi: + openmpi: [4.1.5_slurm] + build_requires: [cmake/3.20.5] + diff --git a/MPI/parmetis/files/variants.merlin6 b/MPI/parmetis/files/variants.merlin6 index 4845c56..c2cb010 100644 --- a/MPI/parmetis/files/variants.merlin6 +++ b/MPI/parmetis/files/variants.merlin6 @@ -2,4 +2,5 @@ parmetis/4.0.3_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm b:cmake/ parmetis/4.0.3_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm b:cmake/3.20.5 parmetis/4.0.3_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm b:cmake/3.20.5 +parmetis/4.0.3_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm b:cmake/3.20.5 diff --git a/MPI/parmetis/files/variants.rhel6 b/MPI/parmetis/files/variants.rhel6 index 9ff9d6a..ed6d400 100644 --- a/MPI/parmetis/files/variants.rhel6 +++ b/MPI/parmetis/files/variants.rhel6 @@ -26,3 +26,4 @@ parmetis/4.0.3 stable gcc/{7.5.0,8.4.0,9.3.0,10.1.0} openmpi/3.1.6 b:cmake/3.9. parmetis/4.0.3 stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0} openmpi/4.0.5 b:cmake/3.15.5 parmetis/4.0.3 stable gcc/10.4.0 openmpi/4.1.4 b:cmake/3.15.5 +parmetis/4.0.3 unstable gcc/10.4.0 openmpi/4.1.5 b:cmake/3.15.5 diff --git a/MPI/qe/build b/MPI/qe/build index 03073fd..5610e09 100755 --- a/MPI/qe/build +++ b/MPI/qe/build @@ -1,23 +1,22 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://github.com/QEF/q-e/archive/$P-$V.tar.gz" - -pbuild::add_to_group 'MPI' - -pbuild::install_docfiles License README.md CONTRIBUTING.md - -pbuild::compile_in_sourcetree - pbuild::pre_configure() { - pbuild::add_configure_args "-enable-openmp" -} - -pbuild::compile() { - make all - make install -} - -pbuild::install() { - : + pbuild::add_configure_args "-DQE_ENABLE_OPENMP=ON" + pbuild::add_configure_args "-DQE_ENABLE_MPI=ON" + # Recommended by the Quantum Espresso Developers + pbuild::add_configure_args "-DCMAKE_C_COMPILER=mpicc" + pbuild::add_configure_args "-DCMAKE_Fortran_COMPILER=mpif90" + pbuild::add_configure_args "-DCMAKE_SYSTEM_PROCESSOR=x86_64" + + case "${COMPILER}" in + nvhpc ) + pbuild::add_configure_args "-DQE_ENABLE_CUDA=ON" + pbuild::add_configure_args "-DQE_ENABLE_MPI_GPU_AWARE=ON" + pbuild::add_configure_args "-DQE_ENABLE_OPENACC=ON" + pbuild::add_configure_args "-DNVFORTRAN_CUDA_VERSION=12.1" + pbuild::add_configure_args "-DNVFORTRAN_CUDA_CC=60" + ;; + esac + } diff --git a/MPI/qe/files/config.yaml b/MPI/qe/files/config.yaml new file mode 100644 index 0000000..cc6cdd6 --- /dev/null +++ b/MPI/qe/files/config.yaml @@ -0,0 +1,32 @@ +--- +# yamllint disable rule:line-length +format: 1 +qe: + defaults: + group: MPI + overlay: base + relstage: stable + systems: [rhel7, rhel8, rhel9] + docfiles: [AUTHORS, LICENSE, NEWS, README] + configure_with: cmake + urls: + - url: https://gitlab.com/QEF/q-e/-/archive/qe-${V_PKG}/q-e-qe-${V_PKG}.tar.bz2 + shasums: + qe-7.3.1.tar.bz2: 4955e4ca5e47a0faafefc72442155bef02ff94c8b796698ad81d4804a1cf6d88 + + versions: + 7.3.1: + variants: + - systems: [merlin-*, ra-*] + group_deps: + compiler: {gcc: [13.1.0]} + mpi: {openmpi: [4.1.5_slurm]} + relstage: unstable + build_requires: [cmake/3.26.3, git/2.39.1, lapack/3.10.0, OpenBLAS/0.3.23, hdf5/1.13.1_slurm] + - systems: [merlin-*, ra-*] + group_deps: + compiler: {nvhpc: [23.5_cuda_12.1]} + mpi: {openmpi: [4.1.4_slurm]} + relstage: unstable + build_requires: [cmake/3.26.3, git/2.39.1] + runtime_deps: [libfabric/1.18.0] diff --git a/Programming/Python/build b/Programming/Python/build index 6b04a83..6940835 100755 --- a/Programming/Python/build +++ b/Programming/Python/build @@ -1,17 +1,5 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://www.python.org/ftp/python/${V_PKG}/$P-${V_PKG}.tgz" - -pbuild::set_sha256sum 'Python-3.7.3.tgz:d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff' -pbuild::set_sha256sum 'Python-2.7.12.tgz:3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6' -pbuild::set_sha256sum 'Python-2.7.14.tgz:304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8' -pbuild::set_sha256sum 'Python-2.7.16.tgz:01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5' -pbuild::set_sha256sum 'Python-3.6.3.tgz:ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91' -pbuild::set_sha256sum 'Python-3.7.3.tgz:d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff' -pbuild::set_sha256sum 'Python-3.7.4.tgz:d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3' - -pbuild::add_to_group 'Programming' - pbuild::pre_configure() { local -a cflags=() local -a ldflags=() @@ -26,7 +14,7 @@ pbuild::pre_configure() { ldflags+=("-L${OPENSSL_LIBRARY_DIR}") else pbuild::add_configure_args "--with-openssl=${OPENSSL_DIR}" - pbuild::add_configure_args "--enable-optimizations" + #pbuild::add_configure_args "--enable-optimizations" fi pbuild::add_configure_args "CFLAGS=${cflags[*]}" pbuild::add_configure_args "LDFLAGS=${ldflags[*]}" @@ -39,12 +27,16 @@ pbuild::pre_configure_Linux() { } pbuild::post_install_Linux() { - install "${OPENSSL_LIBRARY_DIR}"/libcrypto.so.* "${PREFIX}/lib" - install "${OPENSSL_LIBRARY_DIR}"/libssl.so.* "${PREFIX}/lib" - install "${TCLTK_LIBRARY_DIR}"/libtcl*.so "${PREFIX}/lib" - install "${TCLTK_LIBRARY_DIR}"/libtk*.so "${PREFIX}/lib" - install "${XZ_LIBRARY_DIR}"/liblzma.so.* "${PREFIX}/lib" - install /usr/lib64/libffi.so.* "${PREFIX}/lib" + if version_le 3.9.10; then + install "${OPENSSL_LIBRARY_DIR}"/libcrypto.so.* "${PREFIX}/lib" + install "${OPENSSL_LIBRARY_DIR}"/libssl.so.* "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtcl*.so "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtk*.so "${PREFIX}/lib" + install "${XZ_LIBRARY_DIR}"/liblzma.so.* "${PREFIX}/lib" + install /usr/lib64/libffi.so.* "${PREFIX}/lib" + else + : + fi } pbuild::post_install() { @@ -68,7 +60,7 @@ pbuild::post_install() { std::info "Building scipy\n" pip${V_MAJOR} install scipy - std::info "Building matplotlub\n" + std::info "Building matplotlib\n" pip${V_MAJOR} install matplotlib std::info "Building ipython\n" @@ -88,6 +80,9 @@ pbuild::post_install() { std::info "Building virtualenv\n" pip${V_MAJOR} install virtualenv + + #std::info "Building ansible\n" + #pip${V_MAJOR} install ansible ansible-core==2.15.4 } diff --git a/Programming/Python/build-legacy b/Programming/Python/build-legacy new file mode 100755 index 0000000..bace901 --- /dev/null +++ b/Programming/Python/build-legacy @@ -0,0 +1,102 @@ +#!/usr/bin/env modbuild + +pbuild::set_download_url "https://www.python.org/ftp/python/${V_PKG}/$P-${V_PKG}.tgz" + +pbuild::set_sha256sum 'Python-3.7.3.tgz:d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff' +pbuild::set_sha256sum 'Python-2.7.12.tgz:3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6' +pbuild::set_sha256sum 'Python-2.7.14.tgz:304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8' +pbuild::set_sha256sum 'Python-2.7.16.tgz:01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5' +pbuild::set_sha256sum 'Python-3.6.3.tgz:ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91' +pbuild::set_sha256sum 'Python-3.7.3.tgz:d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff' +pbuild::set_sha256sum 'Python-3.7.4.tgz:d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3' + +pbuild::add_to_group 'Programming' + +pbuild::compile_in_sourcetree + +pbuild::pre_configure() { + local -a cflags=() + local -a ldflags=() + + cflags+=("-fPIC") + cflags+=("-I${XZ_INCLUDE_DIR}") + + ldflags+=("-L${XZ_LIBRARY_DIR}") + + if (( V_MAJOR == 2 || (V_MAJOR == 3 && V_MINOR <= 6) )); then + cflags+=("-I${OPENSSL_INCLUDE_DIR}" "-I${OPENSSL_INCLUDE_DIR}/openssl") + ldflags+=("-L${OPENSSL_LIBRARY_DIR}") + else + pbuild::add_configure_args "--with-openssl=${OPENSSL_DIR}" + #pbuild::add_configure_args "--enable-optimizations" + fi + pbuild::add_configure_args "CFLAGS=${cflags[*]}" + pbuild::add_configure_args "LDFLAGS=${ldflags[*]}" + pbuild::add_configure_args "--enable-shared" +} + +pbuild::pre_configure_Linux() { + pbuild::add_configure_args "--with-tcltk-includes=-I${TCLTK_INCLUDE_DIR}" + pbuild::add_configure_args "--with-tcltk-libs=-L${TCLTK_LIBRARY_DIR} -ltcl8.6 -ltk8.6" +} + +pbuild::post_install_Linux() { + if version_le 3.9.10; then + install "${OPENSSL_LIBRARY_DIR}"/libcrypto.so.* "${PREFIX}/lib" + install "${OPENSSL_LIBRARY_DIR}"/libssl.so.* "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtcl*.so "${PREFIX}/lib" + install "${TCLTK_LIBRARY_DIR}"/libtk*.so "${PREFIX}/lib" + install "${XZ_LIBRARY_DIR}"/liblzma.so.* "${PREFIX}/lib" + install /usr/lib64/libffi.so.* "${PREFIX}/lib" + else + : + fi +} + +pbuild::post_install() { + export PATH="${PREFIX}/bin:${PATH}" + export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}" + export CFLAGS="-I${OPENSSL_INCLUDE_DIR} -I${OPENSSL_INCLUDE_DIR}/openssl" + export CPPFLAGS="-I${OPENSSL_INCLUDE_DIR} -I${OPENSSL_INCLUDE_DIR}/openssl" + export LDFLAGS="-L${OPENSSL_LIBRARY_DIR}" + ln -fs "${PREFIX}/bin/python${V%%.*}" "${PREFIX}/bin/python" + ln -fs "${PREFIX}/include/python${V%.*}m" "${PREFIX}/include/python" + ln -fs "${PREFIX}/include/python${V%.*}m" "${PREFIX}/include/python${V%.*}" + + if (( V_MAJOR == 2 || (V_MAJOR == 3 && V_MINOR <= 7) )); then + cd "${BUILDBLOCK_DIR}" + "${PREFIX}/bin/python" 'get-pip.py' + fi + + std::info "Building numpy\n" + pip${V_MAJOR} install numpy + + std::info "Building scipy\n" + pip${V_MAJOR} install scipy + + std::info "Building matplotlub\n" + pip${V_MAJOR} install matplotlib + + std::info "Building ipython\n" + pip${V_MAJOR} install ipython + + std::info "Building sympy\n" + pip${V_MAJOR} install sympy + + std::info "Building nose\n" + pip${V_MAJOR} install nose + + std::info "Building h5py\n" + pip${V_MAJOR} install h5py + + std::info "Building pandas\n" + pip${V_MAJOR} install pandas + + std::info "Building virtualenv\n" + pip${V_MAJOR} install virtualenv + + std::info "Building virtualenv\n" + pip${V_MAJOR} install ansible ansible-core==2.15.4 +} + + diff --git a/Programming/Python/files/config.yaml b/Programming/Python/files/config.yaml new file mode 100644 index 0000000..37ec1dd --- /dev/null +++ b/Programming/Python/files/config.yaml @@ -0,0 +1,61 @@ +format: 1 +Python: + defaults: + group: Programming + overlay: base + relstage: stable + urls: + - url: https://www.python.org/ftp/python/${V_PKG}/$P-${V_PKG}.tgz + + shasums: + Python-3.13.2.tgz: b8d79530e3b7c96a5cb2d40d431ddb512af4a563e863728d8713039aa50203f9 + Python-3.12.9.tgz: 45313e4c5f0e8acdec9580161d565cf5fea578e3eabf25df7cc6355bf4afa1ee + Python-3.11.11.tgz: f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0 + Python-3.10.16.tgz: f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0 + Python-3.9.21.tgz: 667c3ba2ca98d39ead1162f6548c3475768582e2ff89e0821d25eb956ac09944 + Python-3.9.18.tgz: 504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354 + Python-3.9.17.tgz: 8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014 + Python-3.9.10.tgz: 1aa9c0702edbae8f6a2c95f70a49da8420aaa76b7889d3419c186bfc8c0e571e + Python-3.8.8.tgz: 76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7 + Python-3.8.4.tgz: 32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18 + Python-3.8.12.tgz: 316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a + Python-3.7.8.tgz: 0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0 + Python-3.7.4.tgz: d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3 + Python-3.7.3.tgz: d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff + Python-3.6.3.tgz: ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91 + Python-3.6.11.tgz: 96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c + Python-2.7.18.tgz: da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814 + Python-2.7.17.tgz: f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde + Python-2.7.16.tgz: 01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5 + Python-2.7.14.tgz: 304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8 + Python-2.7.12.tgz: 3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6 + versions: + 3.13.2: + config: + build_requires: [openssl/3.4.1, TclTk/8.6.16, xz/5.8.0] + 3.9.18;3.9.21;3.10.16;3.11.11;3.12.9: + config: + runtime_deps: [openssl/3.4.1, TclTk/8.6.16, xz/5.8.0] + 3.9.17: + config: + relstage: deprecated + build_requires: [openssl/1.1.1v, TclTk/8.6.9, xz/5.2.4] + 3.9.10: + 3.8.12: + 3.8.8;3.8.4: + config: + relstage: deprecated + 3.7.8: + config: + relstage: stable + 3.7.4;3.7.3: + config: + relstage: deprecated + 3.6.3: + 3.4.3;3.4.0: + config: + relstage: deprecated + 2.7.17;2.7.16: + 2.7.14;2.7.12;2.7.11: + config: + relstage: deprecated diff --git a/Programming/Python/files/variants.rhel6 b/Programming/Python/files/variants.rhel6 index 5fe2089..3ac0bff 100644 --- a/Programming/Python/files/variants.rhel6 +++ b/Programming/Python/files/variants.rhel6 @@ -13,3 +13,5 @@ Python/3.8.4 deprecated Python/3.8.8 deprecated Python/3.8.12 stable Python/3.9.10 stable +Python/3.9.17 unstable b:openssl/1.1.1v b:TclTk/8.6.9 b:xz/5.2.4 +Python/3.9.18 unstable b:openssl/1.1.1w b:TclTk/8.6.9 b:xz/5.2.4 diff --git a/Programming/TclTk/build b/Programming/TclTk/build index d7fb54a..4b8359e 100755 --- a/Programming/TclTk/build +++ b/Programming/TclTk/build @@ -1,4 +1,32 @@ -#!/bin/bash +#!/usr/bin/env modbuild -./build_Tcl "$@" ||exit $? -./build_Tk -f "$@" +#pbuild::install_docfiles 'license.terms' 'README' + +pbuild::configure_Darwin() { + export CXX=/usr/bin/clang++ + export CC=/usr/bin/clang + PATH+=":/opt/X11/bin" + export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:$PKG_CONFIG_PATH" + "${SRC_DIR}/macosx/configure" \ + --prefix="${PREFIX}" \ + --enable-threads \ + --disable-symbols \ + || exit 1 +} + +pbuild::configure() { + "${SRC_DIR}/unix/configure" \ + --prefix="${PREFIX}" \ + || exit 1 +} + +pbuild::post_install() { + { cd "${PREFIX}"/bin && rm -f tclsh && ln -fs tclsh${V%.*} tclsh; }; +} + +pbuild::post_install_Darwin() { + local -r libtcl="libtcl${V_MAJOR}.${V_MINOR}.dylib" + install_name_tool \ + -id @executable_path/../lib/${libtcl} \ + "${PREFIX}/lib/${libtcl}" +} diff --git a/Programming/TclTk/build_Tk b/Programming/TclTk/build-Tk similarity index 73% rename from Programming/TclTk/build_Tk rename to Programming/TclTk/build-Tk index d85ff18..5d3d1c0 100755 --- a/Programming/TclTk/build_Tk +++ b/Programming/TclTk/build-Tk @@ -1,14 +1,20 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "ftp://ftp.tcl.tk/pub/tcl/tk${V_MAJOR}_${V_MINOR}/tk${V_PKG}-src.tar.gz" - -pbuild::add_to_group 'Programming' - export PATH="${PREFIX}/bin:$PATH" -export C_INCLUDE_PATH="${PREFIX}/include:${C_INCLUDE_PATH}" -export LIBRARY_PATH="${PREFIX}/lib:${LIBRARY_PATH}" +if [[ -v C_INCLUDE_PATH ]]; then + C_INCLUDE_PATH="${PREFIX}/include:${C_INCLUDE_PATH}" +else + C_INCLUDE_PATH="${PREFIX}/include" +fi +export C_INCLUDE_PATH +if [[ -v LIBRARY_PATH ]]; then + LIBRARY_PATH="${PREFIX}/lib:${LIBRARY_PATH}" +else + LIBRARY_PATH="${PREFIX}/lib" +fi +export LIBRARY_PATH -pbuild::configure_Darwin() { +pbuil:d:configure_Darwin() { PATH+=":/opt/X11/bin" export CXX=/usr/bin/clang++ export CC=/usr/bin/clang @@ -24,7 +30,7 @@ pbuild::configure_Darwin() { || exit 1 } -pbuild::configure_Linux() { +pbuild::configure() { "${SRC_DIR}/unix/configure" \ --prefix="${PREFIX}" \ --with-tcl="${PREFIX}/lib" \ diff --git a/Programming/TclTk/build_Tcl b/Programming/TclTk/build_Tcl deleted file mode 100755 index e2a8eda..0000000 --- a/Programming/TclTk/build_Tcl +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::set_download_url "ftp://ftp.tcl.tk/pub/tcl/tcl8_6/tcl${V_PKG}-src.tar.gz" - -pbuild::add_to_group 'Programming' -pbuild::install_docfiles 'license.terms' 'README' - -pbuild::configure_Darwin() { - export CXX=/usr/bin/clang++ - export CC=/usr/bin/clang - PATH+=":/opt/X11/bin" - export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:$PKG_CONFIG_PATH" - "${SRC_DIR}/macosx/configure" \ - --prefix="${PREFIX}" \ - --enable-threads \ - --disable-symbols \ - || exit 1 -} - -pbuild::configure_Linux() { - "${SRC_DIR}/unix/configure" \ - --prefix="${PREFIX}" \ - || exit 1 -} - -pbuild::post_install() { - { cd "${PREFIX}"/bin && rm -f tclsh && ln -fs tclsh${V%.*} tclsh; }; -} - -pbuild::post_install_Darwin() { - local -r libtcl="libtcl${V_MAJOR}.${V_MINOR}.dylib" - install_name_tool \ - -id @executable_path/../lib/${libtcl} \ - "${PREFIX}/lib/${libtcl}" -} diff --git a/Programming/TclTk/files/config.yaml b/Programming/TclTk/files/config.yaml new file mode 100644 index 0000000..5d192cb --- /dev/null +++ b/Programming/TclTk/files/config.yaml @@ -0,0 +1,32 @@ +format: 1 +TclTk: + defaults: + group: Programming + overlay: base + relstage: stable + urls: + - url: http://prdownloads.sourceforge.net/tcl/tcl${V_PKG}-src.tar.gz + shasums: + versions: + 8.6.16: + config: + sub_packages: + - name: Tk + version: 8.6.16 + build_args: + 8.6.9: + config: + sub_packages: + - name: Tk + version: 8.6.9 + build_args: + +Tk: + type: sub_package + defaults: + urls: + - url: http://prdownloads.sourceforge.net/tcl/tk${V_PKG}-src.tar.gz + versions: + 8.6.16: + 8.6.9: + diff --git a/Programming/TclTk/files/variants.macos10.14 b/Programming/TclTk/files/variants.macos10.14 deleted file mode 100644 index a4f9b5b..0000000 --- a/Programming/TclTk/files/variants.macos10.14 +++ /dev/null @@ -1 +0,0 @@ -TclTk/8.6.9 stable diff --git a/Programming/TclTk/files/variants.rhel6 b/Programming/TclTk/files/variants.rhel6 deleted file mode 100644 index a4f9b5b..0000000 --- a/Programming/TclTk/files/variants.rhel6 +++ /dev/null @@ -1 +0,0 @@ -TclTk/8.6.9 stable diff --git a/Programming/anaconda/2019.07/conda-env-defs/hpce-tools/hpce-tools.yml b/Programming/anaconda/2019.07/conda-env-defs/hpce-tools/hpce-tools.yml index ebab9ed..c7b4f79 100644 --- a/Programming/anaconda/2019.07/conda-env-defs/hpce-tools/hpce-tools.yml +++ b/Programming/anaconda/2019.07/conda-env-defs/hpce-tools/hpce-tools.yml @@ -18,3 +18,6 @@ dependencies: - tox-conda - pytest - bpython + - jinja2 # for relion templates + - pip: + - j2cli[yaml] diff --git a/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/README.md b/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/README.md new file mode 100644 index 0000000..3eaf2a9 --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/README.md @@ -0,0 +1,14 @@ +Installation done on pmod7 + +``` +conda env create -f jupyterhub-4.0.2_lab3_py3.11 + +conda activatejupyterhub-4.0.2_lab3_py3.11 +``` + +The current production versions of the spawners (e.g. batchspawner-1.0.0) are +not compatible with jupyterhub-1.0.0. So, one is forced to deploy the +development versions. This is coded in the yaml file as pip dependency, +pointing to the latest commit available + +Also, jupyterlab 4 and jupyter-server 2.11 are not yet supported diff --git a/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/jupyterhub-4.0.2_lab3_py3.11.yml b/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/jupyterhub-4.0.2_lab3_py3.11.yml new file mode 100644 index 0000000..f913dff --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/jupyterhub-4.0.2_lab3_py3.11/jupyterhub-4.0.2_lab3_py3.11.yml @@ -0,0 +1,22 @@ +name: jupyterhub-4.0.2_lab3_py3.11 +channels: + - conda-forge +dependencies: + - jupyterhub=4.0.2 + - jupyterlab=3.6.3 + - nb_conda + - nb_conda_kernels + - jupyter_contrib_nbextensions + - ipywidgets=7.6.3 +# needed for widgets! + - ipympl + - pip + - jupytext + - python=3.11.6 + - jupyterlab-git + - git + - psycopg2 + - jupyter_server<2.11 +# - sqlalchemy=1.4.39 + - pip: + - git+https://github.com/jupyterhub/batchspawner.git@e89bf6a diff --git a/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/README.md b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/README.md new file mode 100644 index 0000000..9f5799d --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/README.md @@ -0,0 +1,28 @@ +Standard Ra environment based on python 3.11. It includes: + - pandas + - numpy + - scipy + - scikit-learn + - matplotlib + - seaborn + - tensorflow + - pytables + - ipython + - keras + - ipywidgets + - plotly + - python-graphviz + - statsmodels + - scikit-image + - numba + - hdf5 + - h5py + - dask + - dask-jobqueue + - ipympl # needed for jupyterlab interactive plotting + - toml + - tabulate + - click + - conda-forge::jupyter-resource-usage + - conda-forge::julia + diff --git a/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/ra-standard_py311.yml b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/ra-standard_py311.yml new file mode 100644 index 0000000..1dca6ce --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py311/ra-standard_py311.yml @@ -0,0 +1,37 @@ +# Clean environment based on pure conda-forge packages +name: ra-standard_py311 +#channels: +# - conda-forge +dependencies: + - python=3.11 + - pandas + - xlrd + - numpy + - scipy + - scikit-learn + - matplotlib + - seaborn + - tensorflow + - pytables + - ipython + - keras + - nb_conda_kernels + - ipywidgets + - plotly + - python-graphviz + - statsmodels + - scikit-image + - numba + - hdf5 + - h5py + - dask + - dask-jobqueue + - ipympl # needed for jupyterlab interactive plotting + - toml + - tabulate + - click + - conda-forge::jupyter-resource-usage + - conda-forge::julia + #- paulscherrerinstitute::bitshuffle + - paulscherrerinstitute::scicat_client + #- paulscherrerinstitute::jungfrau_utils diff --git a/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/README.md b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/README.md new file mode 100644 index 0000000..c14361f --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/README.md @@ -0,0 +1 @@ +**THIS IS A TEST** \ No newline at end of file diff --git a/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/ra-standard_py36.yml b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/ra-standard_py36.yml new file mode 100644 index 0000000..5718dc3 --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/ra-standard_py36/ra-standard_py36.yml @@ -0,0 +1,29 @@ +# Clean environment based on pure conda-forge packages +name: ra-standard_py36 +#channels: +# - conda-forge +dependencies: + - python=3.6 + - pandas + - xlrd + - numpy + - scipy + - scikit-learn + - matplotlib + - seaborn + - tensorflow + - pytables + - ipython + - keras + - nb_conda_kernels + - ipywidgets + - plotly + - python-graphviz + - statsmodels + - scikit-image + - numba + - hdf5 + - h5py + - dask + - dask-jobqueue + - paulscherrerinstitute::bitshuffle \ No newline at end of file diff --git a/Programming/anaconda/2024.08/conda-env-defs/datascience_2024_py3.12/datascience_2024_py3.12.yml b/Programming/anaconda/2024.08/conda-env-defs/datascience_2024_py3.12/datascience_2024_py3.12.yml new file mode 100644 index 0000000..0172a3d --- /dev/null +++ b/Programming/anaconda/2024.08/conda-env-defs/datascience_2024_py3.12/datascience_2024_py3.12.yml @@ -0,0 +1,29 @@ +# Clean environment based on pure conda-forge packages +name: datascience_2024_py3.12 +channels: + - conda-forge +dependencies: + - python=3.12 + - pandas + - xlrd + - numpy + - scipy + - scikit-learn + - matplotlib + - seaborn + - tensorflow + - keras + - pytorch + - pytables + - ipython + # keras 2.1.6 not available from conda-forge for py37 + # - keras=2.1.6 + - nb_conda_kernels + - ipywidgets + - plotly + - dask + - dask-jobqueue + - python-graphviz + - bayesian-optimization + - hdf5storage + diff --git a/Programming/anaconda/2024.08/conda-env-defs/jupyterhub-4.1.6_lab4_py3.12/jupyterhub-4.1.6_lab4_py3.12.yaml b/Programming/anaconda/2024.08/conda-env-defs/jupyterhub-4.1.6_lab4_py3.12/jupyterhub-4.1.6_lab4_py3.12.yaml new file mode 100644 index 0000000..65c2f56 --- /dev/null +++ b/Programming/anaconda/2024.08/conda-env-defs/jupyterhub-4.1.6_lab4_py3.12/jupyterhub-4.1.6_lab4_py3.12.yaml @@ -0,0 +1,28 @@ +name: jupyterhub-4.1.6_lab4_py3.12 +channels: + - conda-forge +dependencies: + - python=3.12 + - jupyterhub=4.1.6 + - jupyterlab>4 + - nb_conda + - nb_conda_kernels + - jupyter_contrib_nbextensions + - ipywidgets + - batchspawner + # - jupyter_server<2.11 + # needed for widgets! + - ipympl + - pip + - jupytext + - jupyterlab-git + - git + - psycopg2 + - plotly + - jupyterlab-plotly-extension + - flask + # - sqlalchemy=1.4.39 + ################# PIP packages + # - pip: + # - git+https://github.com/jupyterhub/batchspawner.git@e89bf6a + diff --git a/Programming/anaconda/2024.08/config.sh b/Programming/anaconda/2024.08/config.sh new file mode 100644 index 0000000..afc7cb6 --- /dev/null +++ b/Programming/anaconda/2024.08/config.sh @@ -0,0 +1,6 @@ +# version-specific settings + +# Miniconda version. Defaults to "latest" +# Should match the version distributed with anaconda +CONDA_VERSION="24.5.0-0" + diff --git a/Programming/anaconda/build b/Programming/anaconda/build index 36832c4..8092711 100755 --- a/Programming/anaconda/build +++ b/Programming/anaconda/build @@ -1,30 +1,10 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'Programming' +# pbuild::add_to_group 'Programming' - -source "${BUILDBLOCK_DIR}/${V_PKG}/config.sh" -if [[ x"$CONDA_VERSION" == x ]]; then - echo "ERROR: CONDA_VERSION for this release has not been defined" >&2 - exit 1 -fi - -MINICONDA_EXE="Miniconda3-${CONDA_VERSION}-Linux-x86_64.sh" -DOWNLOAD_URL="https://repo.anaconda.com/miniconda/$MINICONDA_EXE" +MINICONDA_EXE="miniconda-${V_PKG}.sh" INSTALLER="$PMODULES_DISTFILESDIR/$MINICONDA_EXE" -pbuild::pre_prep() { - # Need to implement own downloader since pbuild::set_download_url and pbuild::prep - # currently only support tar files - std::info "DEBUG: in function %s...\n" "$FUNCNAME: FUNCNAME=${FUNCNAME[*]}" - if [[ -r "$INSTALLER" ]]; then - std::info "%s using previously downloaded %s\n" \ - "${module_name}/${module_version}:" "$INSTALLER" - else - curl -fsSLo "$INSTALLER" "$DOWNLOAD_URL" - fi -} - pbuild::configure() { : } @@ -35,9 +15,9 @@ pbuild::compile() { pbuild::install() { # Install conda - bash "$INSTALLER" -b -p "$PREFIX/conda" + bash "$INSTALLER" -b -p "$PREFIX/conda" || std::die 3 "Error calling installer!" #echo "Installing PSI admintools for maintaining conda" std::info "%s Installing admintools ...\n" "${module_name}/${module_version}:" - cp -r "${BUILDBLOCK_DIR}/files/admintools" "$PREFIX/admintools" + # cp -r "${BUILDBLOCK_DIR}/files/admintools" "$PREFIX/admintools" } diff --git a/Programming/anaconda/files/config.yaml b/Programming/anaconda/files/config.yaml new file mode 100644 index 0000000..463c9c1 --- /dev/null +++ b/Programming/anaconda/files/config.yaml @@ -0,0 +1,15 @@ +format: 1 +anaconda: + defaults: + group: Programming + overlay: base + relstage: stable + + versions: + 2024.08: + config: + urls: + - url: https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-x86_64.sh + name: miniconda-2024.08.sh + unpacker: none + relstage: stable diff --git a/Programming/binutils/files/variants.rhel6 b/Programming/binutils/files/variants.rhel6 index dca4760..f0434ad 100644 --- a/Programming/binutils/files/variants.rhel6 +++ b/Programming/binutils/files/variants.rhel6 @@ -1,3 +1,4 @@ binutils/2.25 stable binutils/2.29 stable binutils/2.37 stable +binutils/2.41 unstable diff --git a/Programming/binutils/files/variants.rhel7 b/Programming/binutils/files/variants.rhel7 new file mode 120000 index 0000000..8b9b44c --- /dev/null +++ b/Programming/binutils/files/variants.rhel7 @@ -0,0 +1 @@ +variants.rhel6 \ No newline at end of file diff --git a/Programming/cmake/build-yaml b/Programming/cmake/build-yaml new file mode 100755 index 0000000..277b777 --- /dev/null +++ b/Programming/cmake/build-yaml @@ -0,0 +1,25 @@ +#!/usr/bin/env modbuild + +declare bootstrap_flags='' + +pbuild::pre_configure() { + bootstrap_flags+='--system-curl' +} + +pbuild::configure() { + "${SRC_DIR}/bootstrap" --prefix="${PREFIX}" ${bootstrap_flags} --verbose +} + +pbuild::post_install_Linux() { + mkdir -p "${PREFIX}/libexec" + cp -v "${GCC_DIR}"/lib64/libgcc_s.so.* "${PREFIX}/libexec" + cp -v "${GCC_DIR}"/lib64/libstdc++.so.* "${PREFIX}/libexec" + chrpath -d /opt/psi/Programming/cmake/3.15.5/bin/ccmake + patchelf --set-rpath '$ORIGIN/../libexec' --force-rpath "${PREFIX}/bin/ccmake" + chrpath -d /opt/psi/Programming/cmake/3.15.5/bin/cmake + patchelf --set-rpath '$ORIGIN/../libexec' --force-rpath "${PREFIX}/bin/cmake" + chrpath -d /opt/psi/Programming/cmake/3.15.5/bin/cpack + patchelf --set-rpath '$ORIGIN/../libexec' --force-rpath "${PREFIX}/bin/cpack" + chrpath -d /opt/psi/Programming/cmake/3.15.5/bin/ctest + patchelf --set-rpath '$ORIGIN/../libexec' --force-rpath "${PREFIX}/bin/ctest" +} diff --git a/Programming/cmake/files/config.yaml b/Programming/cmake/files/config.yaml new file mode 100644 index 0000000..4efa3b7 --- /dev/null +++ b/Programming/cmake/files/config.yaml @@ -0,0 +1,47 @@ +format: 1 +cmake: + defaults: + group: Programming + overlay: base + relstage: stable + urls: + - url: https://cmake.org/files/v${V_MAJOR}.${V_MINOR}/$P-$V.tar.gz + + shasums: + cmake-2.8.12.2.tar.gz: 8c6574e9afabcb9fc66f463bb1f2f051958d86c85c37fccf067eb1a44a120e5e + cmake-3.1.3.tar.gz: 45f4d3fa8a2f61cc092ae461aac4cac1bab4ac6706f98274ea7f314dd315c6d0 + cmake-3.3.2.tar.gz: e75a178d6ebf182b048ebfe6e0657c49f0dc109779170bad7ffcb17463f2fc22 + cmake-3.4.1.tar.gz: d41462bdd80dc37f0d5608167b354bb3af8c068eee640be04c907154c5c113e2 + cmake-3.6.3.tar.gz: 7d73ee4fae572eb2d7cd3feb48971aea903bb30a20ea5ae8b4da826d8ccad5fe + cmake-3.8.1.tar.gz: ce5d9161396e06501b00e52933783150a87c33080d4bdcef461b5b7fd24ac228 + cmake-3.9.6.tar.gz: 7410851a783a41b521214ad987bb534a7e4a65e059651a2514e6ebfc8f46b218 + cmake-3.10.2.tar.gz: 80d0faad4ab56de07aa21a7fc692c88c4ce6156d42b0579c6962004a70a3218b + cmake-3.10.3.tar.gz: 0c3a1dcf0be03e40cf4f341dda79c96ffb6c35ae35f2f911845b72dab3559cf8 + cmake-3.13.3.tar.gz: 665f905036b1f731a2a16f83fb298b1fb9d0f98c382625d023097151ad016b25 + cmake-3.14.0.tar.gz: aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502 + cmake-3.15.5.tar.gz: fbdd7cef15c0ced06bb13024bfda0ecc0dedbcaaaa6b8a5d368c75255243beb4 + cmake-3.19.2.tar.gz: e3e0fd3b23b7fb13e1a856581078e0776ffa2df4e9d3164039c36d3315e0c7f0 + cmake-3.20.5.tar.gz: 12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0 + cmake-3.23.2.tar.gz: f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa + cmake-3.25.2.tar.gz: c026f22cb931dd532f648f087d587f07a1843c6e66a3dfca4fb0ea21944ed33c + cmake-3.26.3.tar.gz: bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659 + cmake-3.27.8.tar.gz: fece24563f697870fbb982ea8bf17482c9d5f855d8c9bf0b82463d76c9e8d0cc + + versions: + 3.27.8: + config: + build_requires: [gcc/7.3.0, patchelf/0.8.1] + relstage: unstable + 3.26.3: + config: + build_requires: [gcc/7.3.0, patchelf/0.8.1] + 3.15.5;3.19.2;3.20.5;3.23.2;3.25.2: + config: + build_requires: [gcc/7.3.0, patchelf/0.8.1] + 3.10.3;3.13.3;3.14.0: + config: + build_requires: [gcc/7.3.0] + 3.8.1: + config: + relstage: removed + 2.8.12.2;3.1.3;3.3.2;3.4.1;3.6.3;3.9.6: diff --git a/Programming/cmake/files/variants.yaml b/Programming/cmake/files/variants.yaml deleted file mode 100644 index fccae50..0000000 --- a/Programming/cmake/files/variants.yaml +++ /dev/null @@ -1,23 +0,0 @@ -overlay: base -relstage: stable -cmake/2.8.12.2: -cmake/3.1.3: -cmake/3.3.2: -cmake/3.4.1: -cmake/3.6.3: -cmake/3.9.6: -cmake/3.10.3: -- dependencies: b:gcc/7.3.0 -cmake/3.13.3: -- dependencies: b:gcc/7.3.0 -cmake/3.14.0: -- dependencies: b:gcc/7.3.0 -cmake/3.15.5: -- dependencies: b:gcc/7.3.0 b:patchelf/0.8.1 -cmake/3.19.2: -- dependencies: b:gcc/8.4.0 b:patchelf/0.8.1 -cmake/3.20.5: -- dependencies: b:gcc/8.4.0 b:patchelf/0.8.1 -cmake/3.23.2: -- dependencies: b:gcc/8.4.0 b:patchelf/0.8.1 - relstage: stable diff --git a/Programming/cuda/build b/Programming/cuda/build index 417baa6..9684585 100755 --- a/Programming/cuda/build +++ b/Programming/cuda/build @@ -1,29 +1,14 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'Programming' - -pbuild::prep() { - : -} - -pbuild::configure() { - : -} - -pbuild::compile() { - : -} - -pbuild::install() { - : -} - +# install with +# bash ./cuda_12.8.1_570.124.06_linux.run --silent --toolkit --installpath=/opt/psi/Programming/cuda/12.8.1/ --no-opengl-libs --no-man-page +# pbuild::post_install() { - if [ -f "/opt/psi/Programming/cuda/${V_PKG}/lib64/stubs/libnvidia-ml.so" ] - then - if [ ! -f "/opt/psi/Programming/cuda/${V_PKG}/lib64/stubs/libnvidia-ml.so.1" ] - then - ln -s /opt/psi/Programming/cuda/$V/lib64/stubs/libnvidia-ml.so /opt/psi/Programming/cuda/${V_PKG}/lib64/stubs/libnvidia-ml.so.1 - fi - fi + cd "${PREFIX}/lib64/stubs" + for lib in lib*; do + local soname="$(patchelf --print-soname "${lib}" 2>/dev/null)" || continue + if [[ ! -e "${soname}" ]]; then + ln -s "${lib}" "${soname}" + fi + done } diff --git a/Programming/cuda/files/config.yaml b/Programming/cuda/files/config.yaml new file mode 100644 index 0000000..8e03246 --- /dev/null +++ b/Programming/cuda/files/config.yaml @@ -0,0 +1,119 @@ +--- +format: 1 +cuda: + defaults: + group: Programming + overlay: base + relstage: stable + build_variants: first_match + build_functions: + configure: [] + compile: [] + install: [pbuild::post_install] + urls: + - &cuda-12_8_1-aarch64 + url: https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux_sbsa.run + unpacker: none + - &cuda-12_8_1-x86_64 + url: https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run + unpacker: none + - &cuda-12_2_2-aarch64 + url: https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux_sbsa.run + unpacker: none + - &cuda-12_2_2-x86_64 + url: https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run + unpacker: none + - &cuda-12_2_0-aarch64 + url: https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux_sbsa.run + unpacker: none + - &cuda-12_2_0-x86_64 + url: https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run + unpacker: none + - &cuda-12_1_1-aarch64 + url: https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux_sbsa.run + unpacker: none + - &cuda-12_1_1-x86_64 + url: https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run + unpacker: none + + shasums: + cuda_12.8.1_570.124.06_linux.run: 228f6bcaf5b7618d032939f431914fc92d0e5ed39ebe37098a24502f26a19797 + cuda_12.8.1_570.124.06_linux_sbsa.run: 353cbab1b57282a1001071796efd95c1e40ec27a3375e854d12637eaa1c6107c + cuda_12.2.2_535.104.05_linux.run: 2b39aae3e7618d9f59a3c8fa1f1bc61f29c0b0e0df75fb05076badb352952ef2 + cuda_12.2.2_535.104.05_linux_sbsa.run: 4113a15e6b27a02638c72edeb5f89de4c9ea312febba12fc4cefff2edc882268 + cuda_12.2.0_535.54.03_linux.run: ecf3d2afadcbac029f0f4505785810d52d006e4b87ba79ff3f984336a2bbf518 + cuda_12.2.0_535.54.03_linux_sbsa.run: 9c90d79bb63952cd30f1f57f9f8fe11e7a8967bba6f824df45d3464b5d37e5d8 + cuda_12.1.1_530.30.02_linux.run: d74022d41d80105319dfa21beea39b77a5b9919539c0487a05caaf2446d6a70e + cuda_12.1.1_530.30.02_linux_sbsa.run: 45ea4cd860f0a26d3db8ce032530f2ee0b55abdd587545213d395a73623b4278 + + versions: + 12.8.1: + variants: + - target_cpus: [aarch64] + systems: [gpu.*.merlin7.psi.ch] + relstage: unstable + overlay: PSI + urls: + - *cuda-12_8_1-aarch64 + - target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + relstage: unstable + overlay: PSI + urls: + - *cuda-12_8_1-x86_64 + - target_cpus: [x86_64] + relstage: stable + urls: + - *cuda-12_8_1-x86_64 + 12.2.2: + variants: + - target_cpus: [aarch64] + systems: [gpu.*.merlin7.psi.ch] + relstage: stable + overlay: PSI + urls: + - *cuda-12_2_2-aarch64 + - target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + relstage: stable + overlay: PSI + urls: + - *cuda-12_2_2-x86_64 + - target_cpus: [x86_64] + relstage: stable + urls: + - *cuda-12_2_2-x86_64 + + 12.2.0: + variants: + - target_cpus: [aarch64] + systems: [gpu.*.merlin7.psi.ch] + urls: + - *cuda-12_2_0-aarch64 + - target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + overlay: PSI + urls: + - *cuda-12_2_0-x86_64 + - target_cpus: [x86_64] + urls: + - *cuda-12_2_0-x86_64 + + 12.1.1: + variants: + - target_cpus: [aarch64] + systems: [gpu.*.merlin7.psi.ch] + overlay: PSI + relstage: unstable + urls: + - *cuda-12_1_1-aarch64 + + - target_cpus: [x86_64] + systems: [.*.merlin7.psi.ch] + overlay: PSI + urls: + - *cuda-12_1_1-x86_64 + + - target_cpus: [x86_64] + urls: + - *cuda-12_1_1-x86_64 diff --git a/Programming/cuda/files/variants.rhel7 b/Programming/cuda/files/variants.rhel7 index dc9872f..75b1509 100644 --- a/Programming/cuda/files/variants.rhel7 +++ b/Programming/cuda/files/variants.rhel7 @@ -13,3 +13,4 @@ cuda/11.4.3 stable cuda/11.5.1 stable cuda/11.8.0 stable cuda/12.1.1 stable +cuda/12.2.0 stable diff --git a/Programming/cuda/modulefile b/Programming/cuda/modulefile index b626491..69c68ce 100644 --- a/Programming/cuda/modulefile +++ b/Programming/cuda/modulefile @@ -13,15 +13,12 @@ harnessing the power of the graphics processing unit (GPU). prepend-path CUDA_PATH "$PREFIX" -# libnvidia-ml.so in GDK package is a stub library that is attached only for build purposes -prepend-path LIBRARY_PATH "$PREFIX/lib64/stubs" -prepend-path LIBRARY_PATH "$PREFIX/targets/x86_64-linux/lib/stubs" +if {[catch {exec /usr/sbin/modinfo -d nvidia} result]} { + # add if the module is *not* loaded => we are on a system without GPU + prepend-path LIBRARY_PATH "$PREFIX/lib64/stubs" + prepend-path LD_LIBRARY_PATH "$PREFIX/lib/stubs" +} prepend-path C_INCLUDE_PATH "$PREFIX/targets/x86_64-linux/include" prepend-path CPLUS_INCLUDE_PATH "$PREFIX/targets/x86_64-linux/include" -# We should always run with libnvidia-ml.so that is installed with your NVIDIA Display Driver. -# By default it's installed in /usr/lib and /usr/lib64. -# Therefore, LD_LIBRARY_PATH must not contain any libnvidia-ml.so reference in the GDK package -# prepend-path LD_LIBRARY_PATH "$PREFIX/lib/stubs" -# prepend-path LD_LIBRARY_PATH "$PREFIX/targets/x86_64-linux/lib/stubs" diff --git a/Programming/gcc/build b/Programming/gcc/build index 4497b6c..6e021f3 100755 --- a/Programming/gcc/build +++ b/Programming/gcc/build @@ -1,68 +1,2 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://ftp.gnu.org/gnu/gcc/$P-$V/$P-$V.tar.gz" - -pbuild::add_to_group 'Programming' -pbuild::install_docfiles 'COPYING' 'COPYING.LIB' 'COPYING.RUNTIME' 'COPYING3' 'COPYING3.LIB' 'NEWS' 'README' - -#pbuild::pre_prep_Darwin() { -# if (( V_MAJOR == 8 )); then -# pbuild::add_patch "files/headers-10.14.4-fix.patch" -# fi -#} - -pbuild::post_prep_Darwin() { - if (( V_MAJOR == 8 )); then - local -r OS_REL=$(uname -r) - local -r patch_fname="${BUILDBLOCK_DIR}/8/headers-10.14.4-fix.patch" - patch -p1 < <(sed "s/darwin18.5/${OS,,}${OS_REL%.*}/" ${patch_fname}) - fi -} - -pbuild::pre_prep() { - if (( V_MAJOR == 4 && V_MINOR <= 8 )) || \ - (( V_MAJOR == 4 && V_MINOR == 9 && V_PATCHLVL < 4)); then - pbuild::add_patch_Darwin "${V_MAJOR}/non-dead-strip.patch" - pbuild::add_patch_Darwin "${V_MAJOR}/configure-as.patch" - fi - if (( V_MAJOR == 5 )) || (( V_MAJOR == 6 )); then - pbuild::add_patch_Darwin "${V_MAJOR}/PR57438_avoiding_empty_function_bodies_and_trailing_labels.patch" - fi - if (( V_MAJOR == 10 && V_MINOR == 2 )); then - pbuild::add_patch "files/gcc-10.2.0-cpp-__has_include.patch" - fi -} - -pbuild::pre_configure() { - pbuild::add_configure_args "--with-gmp=${GMP_PREFIX}" - pbuild::add_configure_args "--with-mpfr=${MPFR_PREFIX}" - pbuild::add_configure_args "--with-mpc=${MPC_PREFIX}" - pbuild::add_configure_args "--enable-lto" - pbuild::add_configure_args "--disable-multilib" - pbuild::add_configure_args "--with-pkgversion='PSI Environment Module'" - pbuild::add_configure_args "--with-build-config=bootstrap-debug" -} - -pbuild::pre_configure_Linux() { - if (( V_MAJOR >= 8 )); then - pbuild::add_configure_args "--enable-languages=c,c++,objc,obj-c++,lto,fortran,go" - fi -} - -pbuild::pre_configure_Darwin() { - local -r prefix='/usr' - pbuild::add_configure_args "--enable-languages=c,c++,objc,obj-c++,lto,fortran" - pbuild::add_configure_args "--with-as=${prefix}/bin/as" - pbuild::add_configure_args "--with-ld=${prefix}/bin/ld" - pbuild::add_configure_args "--with-ar=${prefix}/bin/ar" - pbuild::add_configure_args "AR_FOR_TARGET=${prefix}/bin/ar" - pbuild::add_configure_args "AS_FOR_TARGET=${prefix}/bin/as" - pbuild::add_configure_args "LD_FOR_TARGET=${prefix}/bin/ld" - pbuild::add_configure_args "NM_FOR_TARGET=${prefix}/bin/nm" - pbuild::add_configure_args "OBJDUMP_FOR_TARGET=${prefix}/bin/objdump" - pbuild::add_configure_args "RANLIB_FOR_TARGET=${prefix}/bin/ranlib" - pbuild::add_configure_args "STRIP_FOR_TARGET=${prefix}/bin/strip" - pbuild::add_configure_args "OTOOL=${prefix}/bin/otool" - pbuild::add_configure_args "OTOOL64=${prefix}/bin/otool" -} - diff --git a/Programming/gcc/files/config.yaml b/Programming/gcc/files/config.yaml new file mode 100644 index 0000000..0d4e8db --- /dev/null +++ b/Programming/gcc/files/config.yaml @@ -0,0 +1,355 @@ +--- +format: 1 +gcc: + defaults: + group: Programming + relstage: stable + docfiles: + - COPYING + - COPYING.LIB + - COPYING.RUNTIME + - COPYING3 + - COPYING3.LIB + - NEWS + - README + configure_args: + - --with-gmp=${GMP_PREFIX} + - --with-mpfr=${MPFR_PREFIX} + - --with-mpc=${MPC_PREFIX} + - --enable-lto + - --disable-multilib + - --with-pkgversion=PSI Environment Module + - --with-build-config=bootstrap-debug + urls: + - url: https://ftp.gnu.org/gnu/gcc/$P-$V/$P-$V.tar.gz + + shasums: + gcc-14.2.0.tar.gz: 7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293 + gcc-13.3.0.tar.gz: 3a2b10cab86e32358fdac871546d57e2700e9bdb5875ef33fff5b601265b9e32 + gcc-13.1.0.tar.gz: bacd4c614d8bd5983404585e53478d467a254249e0f1bb747c8bc6d787bd4fa2 + gcc-12.4.0.tar.gz: 5a30de2be740062bb3ddd3fd13c9b1bb4584d8f85616d33f23a713439d714148 + gcc-12.3.0.tar.gz: 11275aa7bb34cd8ab101d01b341015499f8d9466342a2574ece93f954d92273b + gcc-12.1.0.tar.gz: e88a004a14697bbbaba311f38a938c716d9a652fd151aaaa4cf1b5b99b90e2de + gcc-11.4.0.tar.gz: af828619dd1970734dda3cfb792ea3f2cba61b5a00170ba8bce4910749d73c07 + gcc-11.3.0.tar.gz: 98438e6cc7294298b474cf0da7655d9a8c8b796421bb0210531c294a950374ed + gcc-11.2.0.tar.gz: f0837f1bf8244a5cc23bd96ff6366712a791cfae01df8e25b137698aca26efc1 + gcc-10.4.0.tar.gz: ab1974017834430de27fd803ade4389602a7d6ca1362496c57bef384b2a4cb07 + gcc-10.3.0.tar.gz: 8fcf994811ad4e5c7ac908e8cf62af2c1982319e5551f62ae72016064dacdf16 + gcc-10.2.0.tar.gz: 27e879dccc639cd7b0cc08ed575c1669492579529b53c9ff27b0b96265fa867d + gcc-10.1.0.tar.gz: 954057239c89d25bc7a62bfbceb58026363ad74f079c63fdba27f95abbf60900 + gcc-9.5.0.tar.gz: 15b34072105272a3eb37f6927409f7ce9aa0dd1498efebc35f851d6e6f029a4d + gcc-9.3.0.tar.gz: 5258a9b6afe9463c2e56b9e8355b1a4bee125ca828b8078f910303bc2ef91fa6 + gcc-9.2.0.tar.gz: a931a750d6feadacbeecb321d73925cd5ebb6dfa7eff0802984af3aef63759f4 + gcc-9.1.0.tar.gz: be303f7a8292982a35381489f5a9178603cbe9a4715ee4fa4a815d6bcd2b658d + gcc-8.5.0.tar.gz: 6e6e0628573d2185727a2dd83211d04a2b2748e4a262099099b9c8064634c9ee + gcc-8.4.0.tar.gz: 41e8b145832fc0b2b34c798ed25fb54a881b0cee4cd581b77c7dc92722c116a8 + gcc-8.3.0.tar.gz: ea71adc1c3d86330874b8df19611424b143308f0d6612d542472600532c96d2d + gcc-8.2.0.tar.gz: 1b0f36be1045ff58cbb9c83743835367b860810f17f0195a4e093458b372020f + gcc-8.1.0.tar.gz: af300723841062db6ae24e38e61aaf4fbf3f6e5d9fd3bf60ebbdbf95db4e9f09 + gcc-7.5.0.tar.gz: 4f518f18cfb694ad7975064e99e200fe98af13603b47e67e801ba9580e50a07f + gcc-7.4.0.tar.gz: cb8df68237b0bea3307217697ad749a0a0565584da259e8a944ef6cfc4dc4d3d + gcc-7.3.0.tar.gz: fa06e455ca198ddc11ea4ddf2a394cf7cfb66aa7e0ab98cc1184189f1d405870 + gcc-7.2.0.tar.gz: 0153a003d3b433459336a91610cca2995ee0fb3d71131bd72555f2231a6efcfc + gcc-7.1.0.tar.gz: 3c187ef42e4cf657eec0ed641aac7f7e46261bcb1cea31b72dcf2dedddbbdea5 + gcc-6.5.0.tar.gz: 4eed92b3c24af2e774de94e96993aadbf6761cdf7a0345e59eb826d20a9ebf73 + gcc-6.4.0.tar.gz: 4715f02413f8a91d02d967521c084990c99ce1a671b8a450a80fbd4245f4b728 + gcc-6.3.0.tar.gz: 02f9302a559fa2251595ca0bc1e937219eff2995a3802d7b31676fec2402beb4 + gcc-6.2.0.tar.gz: ba8c49e54f1b3e04434d6261e5718ed843d1ba3e54a070740913acfbd815e577 + gcc-6.1.0.tar.gz: 724a61d190f27d5028791587149c6a6d6a312d6659a61636be5be86b6e809b59 + gcc-5.5.0.tar.gz: 3aabce75d6dd206876eced17504b28d47a724c2e430dbd2de176beb948708983 + gcc-5.4.0.tar.gz: 37089e80c3f2e9a0663d7ccc51c2a6c7dbbf3275bc1e4ed1ed3b1460cd5b3030 + gcc-5.3.0.tar.gz: b7f5f56bd7db6f4fcaa95511dbf69fc596115b976b5352c06531c2fc95ece2f4 + gcc-5.2.0.tar.gz: 87f3f1b3deebee26b6b71068c37201541586647c1ee64a505b06fc4129d6376a + gcc-5.1.0.tar.gz: 335275817b5ed845fee787e75efd76a6e240bfabbe0a0c20a81a04777e204617 + gcc-4.9.4.tar.gz: 1680f92781b92cbdb57d7e4f647c650678c594154cb0d707fd9a994424a9860d + gcc-4.9.3.tar.gz: e6c63b40877bc756cc7cfe6ca98013eb15f02ec6c8c2cf68e24533ad1203aaba + gcc-4.9.2.tar.gz: 3e573826ec8b0d62d47821408fbc58721cd020df3e594cd492508de487a43b5e + gcc-4.9.1.tar.gz: 51c3be8eb5f029929f05117c15c77be2d2f4290eb3c3edbdb54a59a5cd58bf0f + gcc-4.9.0.tar.gz: f945544c12435a54f60a463c5aa16e458b82cbb374e26eafe56bb95dbc308ca1 + gcc-4.8.5.tar.gz: 1dbc5cd94c9947fe5dffd298e569de7f44c3cedbd428fceea59490d336d8295a + gcc-4.8.4.tar.gz: 655fe692ddd333c29c5a1418f50f63a42cdd9e9eb7ebdb7f621e33c4b8799e31 + gcc-4.8.3.tar.gz: 5a46edbee29b6fed9006c02899db7cb7eff5f2d5837678484e1ff7da3b4beb6f + gcc-4.8.2.tar.gz: 2ea77114344a06c45dd5791275311e91d306545aa5ec9db31d24174f6965e880 + gcc-4.7.4.tar.gz: ddbaa583c5d4e4f0928bf15d9f6b6c283349e16eedc47bde71e1b813f6f37819 + gcc-4.7.3.tar.gz: 34a273937eb63ee710784b65bcf9fb3cfcd79d02848f80c75f8254abd14c79c8 + gcc-4.6.4.tar.gz: 53de33db01815914b3905a7d2cefac1ecf24ad081b82d93e4f526d8e62ff736f + + versions: + 12.3.0;12.4.0;13.2.0;13.3.0;14.2.0: + config: + relstage: stable + build_requires: [gcc/10.4.0, gmp/6.3.0, mpfr/4.2.1, mpc/1.3.1-1] + configure_args+: + - --enable-languages=c,c++,objc,obj-c++,lto,fortran,go + variants: + - overlay: base + systems: [rhel.*] + - overlay: PSI + systems: [login.*.merlin7.psi.ch, cn.*.merlin7.psi.ch, gpu.*.merlin7.psi.ch] + modulefile: modulefile-alps + - overlay: base + systems: [rhel.*] + + 12.1.0: + config: + relstage: deprecated + build_requires: [gcc/11.3.0, gmp/6.2.1, mpfr/4.1.0, mpc/1.2.1] + variants: + - overlay: base + systems: [rhel.*] + + 11.4.0: + config: + restage: stable + build_requires: [gcc/10.3.0, gmp/6.2.1, mpfr/4.2.0, mpc/1.3.1] + variants: + - overlay: base + systems: [rhel.*] + + 11.3.0: + config: + restage: stable + build_requires: [gcc/10.3.0, gmp/6.2.1, mpfr/4.1.0, mpc/1.2.1] + variants: + - overlay: base + systems: [rhel.*] + + 11.2.0: + config: + restage: deprecated + build_requires: [gcc/10.3.0, gmp/6.2.1, mpfr/4.1.0, mpc/1.2.1] + variants: + - overlay: base + systems: [rhel.*] + + 10.4.0: + config: + relstage: stable + build_requires: [gmp/6.2.1, mpfr/4.1.0, mpc/1.2.1] + variants: + - overlay: base + + 10.3.0: + config: + restage: stable + build_requires: [gmp/6.2.1, mpfr/4.1.0, mpc/1.2.1] + variants: + - overlay: base + systems: [rhel.*] + + 10.1.0;10.2.0: + config: + restage: deprecated + build_requires: [gmp/6.2.0, mpfr/4.0.2-1, mpc/1.1.0-4] + variants: + - overlay: base + systems: [rhel.*] + + 9.3.0: + config: + restage: stable + build_requires: [gmp/6.2.0, mpfr/4.0.2-1, mpc/1.1.0-4] + variants: + - overlay: base + systems: [rhel.*] + + 9.2.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2-1, mpfr/4.0.2, mpc/1.1.0-3, isl/0.21] + variants: + - overlay: base + systems: [rhel.*] + + 9.1.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2-1, mpfr/4.0.2, mpc/1.1.0-3] + variants: + - overlay: base + systems: [rhel.*] + + 8.5.0: + config: + relstage: stable + build_requires: [gmp/6.3.0, mpfr/4.2.1, mpc/1.3.1-1] + configure_args+: + - --enable-languages=c,c++,objc,obj-c++,lto,fortran,go + variants: + - overlay: PSI + systems: [login.*.merlin7.psi.ch, cn.*.merlin7.psi.ch, gpu.*.merlin7.psi.ch] + + 8.4.0: + config: + restage: stable + build_requires: [gmp/6.2.0, mpfr/4.0.2-1, mpc/1.1.0-4] + variants: + - overlay: base + systems: [rhel.*] + + 8.3.0: + config: + restage: stable + build_requires: [gmp/6.1.2-1, mpfr/4.0.2, mpc/1.1.0-3] + variants: + - overlay: base + systems: [rhel.*] + + 8.1.0;8.2.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2, mpfr/4.0.1, mpc/1.1.0] + variants: + - overlay: base + systems: [rhel.*] + + 7.5.0: + config: + restage: stable + build_requires: [gmp/6.2.0, mpfr/4.0.2-1, mpc/1.1.0-4] + variants: + - overlay: base + systems: [rhel.*] + + 7.4.0: + config: + restage: stable + build_requires: [gmp/6.1.2-1, mpfr/4.0.1-1, mpc/1.1.0-2] + variants: + - overlay: base + systems: [rhel.*] + + 7.3.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2, mpfr/4.0.0, mpc/1.1.0] + variants: + - overlay: base + systems: [rhel.*] + + 7.2.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2, mpfr/3.1.5, mpc/1.0.3-2] + variants: + - overlay: base + systems: [rhel.*] + + 7.1.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2, mpfr/3.1.5, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 6.5.0: + config: + restage: stable + build_requires: [gmp/6.1.2-1, mpfr/4.0.1-1, mpc/1.1.0-2] + variants: + - overlay: base + systems: [rhel.*] + + 6.4.0: + config: + restage: stable + build_requires: [gmp/6.1.2, mpfr/3.1.5, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 6.3.0: + config: + restage: deprecated + build_requires: [gmp/6.1.2, mpfr/3.1.5, mpc/1.0.3-2] + variants: + - overlay: base + systems: [rhel.*] + + 6.2.0: + config: + restage: deprecated + build_requires: [gmp/6.1.1, mpfr/3.1.4, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 6.1.0: + config: + restage: deprecated + build_requires: [gmp/6.1.0, mpfr/3.1.4, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 5.5.0: + config: + restage: stable + build_requires: [gmp/6.1.2-1, mpfr/4.0.1, mpc/1.1.0-1] + variants: + - overlay: base + systems: [rhel.*] + + 5.4.0: + config: + restage: stable + build_requires: [gmp/6.1.2, mpfr/3.1.5, mpc/1.0.3-2] + variants: + - overlay: base + systems: [rhel.*] + + 5.2.0;5.3.0: + config: + restage: deprecated + build_requires: [gmp/6.0.0, mpfr/3.1.3, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 5.1.0: + config: + restage: deprecated + build_requires: [gmp/5.1.1, mpfr/3.1.2, mpc/1.0.2] + variants: + - overlay: base + systems: [rhel.*] + + 4.9.4: + config: + restage: stable + build_requires: [gmp/6.1.1, mpfr/3.1.4, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 4.9.3: + config: + restage: stable + build_requires: [gmp/6.1.0, mpfr/3.1.4, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 4.9.0;4.9.2: + config: + restage: stable + build_requires: [gmp/5.1.1, mpfr/3.1.2, mpc/1.0.2] + variants: + - overlay: base + systems: [rhel.*] + 4.8.5: + config: + restage: stable + build_requires: [gmp/6.0.0, mpfr/3.1.3, mpc/1.0.3] + variants: + - overlay: base + systems: [rhel.*] + + 4.7.4;4.8.2;4.8.3;4.8.4: + config: + restage: stable + build_requires: [gmp/5.1.1, mpfr/3.1.2, mpc/1.0.2] + variants: + - overlay: base + systems: [rhel.*] diff --git a/Programming/gcc/files/gcc-10.2.0-cpp-__has_include.patch b/Programming/gcc/files/gcc-10.2.0-cpp-__has_include.patch deleted file mode 100644 index fa1fb8a..0000000 --- a/Programming/gcc/files/gcc-10.2.0-cpp-__has_include.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b7bb13d4a5fcb593dc745ca3b6180f8babb54893 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tiziano=20M=C3=BCller?= -Date: Mon, 27 Jul 2020 15:40:38 +0200 -Subject: [PATCH] libcpp: fix __has_include handling with traditional-cpp - -fixes #95889 ---- - libcpp/init.c | 3 +++ - libcpp/traditional.c | 4 +++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/libcpp/init.c b/libcpp/init.c -index 0aac5acd0a35..b0cf71192589 100644 ---- a/libcpp/init.c -+++ b/libcpp/init.c -@@ -400,6 +400,9 @@ static const struct builtin_macro builtin_array[] = - B("__LINE__", BT_SPECLINE, true), - B("__INCLUDE_LEVEL__", BT_INCLUDE_LEVEL, true), - B("__COUNTER__", BT_COUNTER, true), -+ /* Make sure to update the list of built-in -+ function-like macros in traditional.c: -+ fun_like_macro() when adding more following */ - B("__has_attribute", BT_HAS_ATTRIBUTE, true), - B("__has_cpp_attribute", BT_HAS_ATTRIBUTE, true), - B("__has_builtin", BT_HAS_BUILTIN, true), -diff --git a/libcpp/traditional.c b/libcpp/traditional.c -index 77adb3bf595f..b087072c9b4c 100644 ---- a/libcpp/traditional.c -+++ b/libcpp/traditional.c -@@ -330,7 +330,9 @@ fun_like_macro (cpp_hashnode *node) - { - if (cpp_builtin_macro_p (node)) - return (node->value.builtin == BT_HAS_ATTRIBUTE -- || node->value.builtin == BT_HAS_BUILTIN); -+ || node->value.builtin == BT_HAS_BUILTIN -+ || node->value.builtin == BT_HAS_INCLUDE -+ || node->value.builtin == BT_HAS_INCLUDE_NEXT); - return node->value.macro->fun_like; - } - diff --git a/Programming/gcc/files/variants.macos10.14 b/Programming/gcc/files/variants.macos10.14 deleted file mode 100644 index 93046f5..0000000 --- a/Programming/gcc/files/variants.macos10.14 +++ /dev/null @@ -1,22 +0,0 @@ -gcc/4.7.4 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.3 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.4 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.5 stable b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/4.9.0 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.9.2 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.9.3 stable b:gmp/6.1.0 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/4.9.4 stable b:gmp/6.1.1 b:mpfr/3.1.4 b:mpc/1.0.3 - -gcc/5.1.0 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/5.2.0 deprecated b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/5.3.0 stable b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/5.4.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3-2 - -gcc/6.1.0 stable b:gmp/6.1.0 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/6.2.0 stable b:gmp/6.1.1 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/6.3.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3-2 - -gcc/7.3.0 stable b:gmp/6.1.2 b:mpfr/4.0.0 b:mpc/1.1.0 - -gcc/8.3.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.2 b:mpc/1.1.0-3 - diff --git a/Programming/gcc/files/variants.rhel6 b/Programming/gcc/files/variants.rhel6 deleted file mode 100644 index 71f29c9..0000000 --- a/Programming/gcc/files/variants.rhel6 +++ /dev/null @@ -1,50 +0,0 @@ -gcc/4.7.4 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.2 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.3 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.4 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.8.5 stable b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/4.9.0 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.9.2 stable b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/4.9.3 stable b:gmp/6.1.0 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/4.9.4 stable b:gmp/6.1.1 b:mpfr/3.1.4 b:mpc/1.0.3 - -gcc/5.1.0 deprecated b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 -gcc/5.2.0 deprecated b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/5.3.0 stable b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 -gcc/5.4.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3-2 -gcc/5.5.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.1 b:mpc/1.1.0-1 - -gcc/6.1.0 stable b:gmp/6.1.0 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/6.2.0 stable b:gmp/6.1.1 b:mpfr/3.1.4 b:mpc/1.0.3 -gcc/6.3.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3-2 -gcc/6.4.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3 -gcc/6.5.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.1-1 b:mpc/1.1.0-2 - -gcc/7.1.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3 -gcc/7.2.0 stable b:gmp/6.1.2 b:mpfr/3.1.5 b:mpc/1.0.3-2 -gcc/7.3.0 stable b:gmp/6.1.2 b:mpfr/4.0.0 b:mpc/1.1.0 -gcc/7.4.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.1-1 b:mpc/1.1.0-2 -gcc/7.5.0 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 - -gcc/8.1.0 stable b:gmp/6.1.2 b:mpfr/4.0.1 b:mpc/1.1.0 -gcc/8.2.0 stable b:gmp/6.1.2 b:mpfr/4.0.1 b:mpc/1.1.0 -gcc/8.3.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.2 b:mpc/1.1.0-3 -gcc/8.4.0 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 - -gcc/9.1.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.2 b:mpc/1.1.0-3 -gcc/9.2.0 stable b:gmp/6.1.2-1 b:mpfr/4.0.2 b:mpc/1.1.0-3 b:isl/0.21 -gcc/9.3.0 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 - -gcc/10.1.0 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 -gcc/10.2.0 stable b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 -gcc/10.3.0 stable b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/10.4.0 stable b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 - -gcc/11.2.0 stable b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/11.3.0 stable b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/11.4.0 stable b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.2.0 b:mpc/1.3.1 - -gcc/12.1.0 stable b:gcc/11.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/12.3.0 stable b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.2.0 b:mpc/1.3.1 - -gcc/13.1.0 stable b:gcc/10.4.0 b:gmp/6.2.1 b:mpfr/4.2.0 b:mpc/1.3.1 diff --git a/Programming/gcc/files/variants.yaml b/Programming/gcc/files/variants.yaml deleted file mode 100644 index 60b14e2..0000000 --- a/Programming/gcc/files/variants.yaml +++ /dev/null @@ -1,39 +0,0 @@ -overlay: base -relstage: stable -gcc/4.7.4: - - dependencies: b:gmp/5.1.1 b:mpfr/3.1.2 b:mpc/1.0.2 - -gcc/4.8.5: - - dependencies: b:gmp/6.0.0 b:mpfr/3.1.3 b:mpc/1.0.3 - -gcc/4.9.4: - - dependencies: b:gmp/6.1.1 b:mpfr/3.1.4 b:mpc/1.0.3 - -gcc/5.5.0: - - dependencies: b:gmp/6.1.2-1 b:mpfr/4.0.1 b:mpc/1.1.0-1 - -gcc/6.5.0: - - dependencies: b:gmp/6.1.2-1 b:mpfr/4.0.1-1 b:mpc/1.1.0-2 - -gcc/7.5.0: - - dependencies: b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 - -gcc/8.4.0: - - dependencies: b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 -gcc/8.5.0: - - dependencies: b:gcc/7.5.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 - -gcc/9.3.0: - - dependencies: b:gmp/6.2.0 b:mpfr/4.0.2-1 b:mpc/1.1.0-4 -gcc/9.5.0: - - dependencies: b:gcc/8.5.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/10.3.0: - - dependencies: b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 - -gcc/11.2.0: - - dependencies: b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 -gcc/11.3.0: - - dependencies: b:gcc/10.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 - -gcc/12.1.0: - - dependencies: b:gcc/11.3.0 b:gmp/6.2.1 b:mpfr/4.1.0 b:mpc/1.2.1 diff --git a/Programming/gcc/modulefile-alps b/Programming/gcc/modulefile-alps new file mode 100644 index 0000000..a1f7b84 --- /dev/null +++ b/Programming/gcc/modulefile-alps @@ -0,0 +1,28 @@ +#%Module1.0 + +module-whatis "GNU Compiler Collection" +module-url "http://gcc.gnu.org/" +module-license "GNU GPL v2/v3" +module-maintainer "Achim Gsell " + +module-help " +The GNU Compiler Collection includes front ends for C, C++, Objective-C, +Fortran, Java, Ada, and Go, as well as libraries for these languages +(libstdc++, libgcj,...). GCC was originally written as the compiler for +the GNU operating system. + +This module includes compilers for +- C/C++ +- Objective-C/Objective-C++ +- Fortran +" + +module-addgroup "Compiler" + +setenv CC $PREFIX/bin/gcc +setenv CXX $PREFIX/bin/g++ +setenv F77 $PREFIX/bin/gfortran +setenv F90 $PREFIX/bin/gfortran +setenv FC $PREFIX/bin/gfortran +setenv FORTRAN $PREFIX/bin/gfortran + diff --git a/Programming/matlab/README.md b/Programming/matlab/README.md index 48166e5..b84005e 100644 --- a/Programming/matlab/README.md +++ b/Programming/matlab/README.md @@ -1,3 +1,3 @@ Installation guidelines: -https://gitlab.psi.ch/Pmodules/buildblocks/wikis/Matlab \ No newline at end of file +https://gitlab.psi.ch/Pmodules/buildblocks/wikis/matlab/2024a \ No newline at end of file diff --git a/Programming/nvhpc/Readme.md b/Programming/nvhpc/Readme.md new file mode 100644 index 0000000..5c1be1d --- /dev/null +++ b/Programming/nvhpc/Readme.md @@ -0,0 +1,5 @@ +After installing PGI, the localrc file of the pgi installation needs to be modified by issuing the following commands in the directory where the localrc file is located: + + module add gcc/ # currently 7.3.0 + ./makelocalrc -x -gcc $(which gcc) -gpp $(which g++) -g77 $(which gfortran) + diff --git a/Programming/nvhpc/build b/Programming/nvhpc/build new file mode 100755 index 0000000..2252749 --- /dev/null +++ b/Programming/nvhpc/build @@ -0,0 +1,23 @@ +#!/usr/bin/env modbuild + +pbuild::configure() { + : +} + +pbuild::compile() { + : +} + +pbuild::install() { + export NVHPC_SILENT="true" + export NVHPC_INSTALL_DIR=$PREFIX + export NVHPC_INSTALL_TYPE="network" + ./install +} + +pbuild::post_install() { + cd $PREFIX/Linux_x86_64/$V_MAJOR.$V_MINOR/compilers/bin + rm -rf localrc* + ./makelocalrc -x $PWD +} + diff --git a/Programming/nvhpc/files/config.yaml b/Programming/nvhpc/files/config.yaml new file mode 100644 index 0000000..877c2dc --- /dev/null +++ b/Programming/nvhpc/files/config.yaml @@ -0,0 +1,30 @@ +--- +# yamllint disable rule:line-length +format: 1 +nvhpc: + defaults: + group: Programming + overlay: base + relstage: stable + systems: ['*.merlin7.*', 'merlin-*', 'ra-*'] + docfiles: [AUTHORS, LICENSE, NEWS, README] + compile_in_sourcetree: true + shasums: + nvhpc-24.3.tar.gz: 4fb8949ba8cef73b28818bd9375c9420ec48fab1c64e71315a7c1984f5329d6b + nvhpc-23.5.tar.gz: 3196309b38df6f0a27e18b80f6a40e23cab8195cad43fc6bbd569af7d8ca5742 + + versions: + 24.3: + variants: + - suffix: _cuda_12.3 + urls: + - url: https://developer.download.nvidia.com/hpc-sdk/${V_PKG}/nvhpc_2024_243_Linux_x86_64_cuda_12.3.tar.gz + relstage: stable + build_requires: [gcc/10.4.0] + 23.5: + variants: + - suffix: _cuda_12.1 + urls: + - url: https://developer.download.nvidia.com/hpc-sdk/${V_PKG}/nvhpc_2023_235_Linux_x86_64_cuda_12.1.tar.gz + relstage: stable + build_requires: [gcc/10.4.0] diff --git a/Programming/nvhpc/modulefile b/Programming/nvhpc/modulefile new file mode 100644 index 0000000..1835016 --- /dev/null +++ b/Programming/nvhpc/modulefile @@ -0,0 +1,71 @@ +#%Module1.0 + +# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. +# +# NVIDIA CORPORATION and its licensors retain all intellectual property +# and proprietary rights in and to this software, related documentation +# and any modifications thereto. Any use, reproduction, disclosure or +# distribution of this software and related documentation without an express +# license agreement from NVIDIA CORPORATION is strictly prohibited. + +module-whatis "NVIDIA HPC SDK: A Comprehensive Suite of Compilers, Libraries and Tools for HPC" +module-url "https://developer.nvidia.com/hpc-sdk" +module-license "# Copyright (c) 2023 NVIDIA CORPORATION. All rights reserved. + # + # NVIDIA CORPORATION and its licensors retain all intellectual property + # and proprietary rights in and to this software, related documentation + # and any modifications thereto. Any use, reproduction, disclosure or + # distribution of this software and related documentation without an express + # license agreement from NVIDIA CORPORATION is strictly prohibited." +module-maintainer "Elsa Germann " + +module-addgroup "Compiler" + +set nvhome $PREFIX +set target Linux_x86_64 +set version $V_MAJOR.3 + +set nvcudadir $nvhome/$target/$version/cuda +set nvcompdir $nvhome/$target/$version/compilers +set nvmathdir $nvhome/$target/$version/math_libs +set nvcommdir $nvhome/$target/$version/comm_libs + +setenv NVHPC $nvhome +setenv NVHPC_ROOT $nvhome/$target/$version +setenv CUDA_HOME $nvcudadir +setenv CC $nvcompdir/bin/nvc +setenv CXX $nvcompdir/bin/nvc++ +setenv FC $nvcompdir/bin/nvfortran +setenv F90 $nvcompdir/bin/nvfortran +setenv F77 $nvcompdir/bin/nvfortran +setenv CPP cpp + +prepend-path PATH $nvcudadir/bin +prepend-path PATH $nvcompdir/bin +prepend-path PATH $nvcompdir/extras/qd/bin + +prepend-path LD_LIBRARY_PATH $nvcudadir/lib64 +prepend-path LD_LIBRARY_PATH $nvcudadir/extras/CUPTI/lib64 +prepend-path LD_LIBRARY_PATH $nvcompdir/extras/qd/lib +prepend-path LD_LIBRARY_PATH $nvcompdir/lib +prepend-path LD_LIBRARY_PATH $nvmathdir/lib64 +prepend-path LD_LIBRARY_PATH $nvcommdir/nccl/lib +prepend-path LD_LIBRARY_PATH $nvcommdir/nvshmem/lib +prepend-path LD_LIBRARY_PATH /opt/psi/Programming/gcc/10.4.0/lib64 + +prepend-path LIBRARY_PATH /opt/psi/Programming/gcc/10.4.0/lib64 +prepend-path LIBRARY_PATH $nvmathdir/lib64 +prepend-path LIBRARY_PATH $nvcudadir/lib64 +prepend-path LIBRARY_PATH $nvcudadir/extras/CUPTI/lib64 +prepend-path LIBRARY_PATH $nvcompdir/extras/qd/lib +prepend-path LIBRARY_PATH $nvcompdir/lib +prepend-path LIBRARY_PATH $nvmathdir/lib64 +prepend-path LIBRARY_PATH $nvcommdir/nccl/lib +prepend-path LIBRARY_PATH $nvcommdir/nvshmem/lib + +prepend-path CPATH $nvmathdir/include +prepend-path CPATH $nvcommdir/nccl/include +prepend-path CPATH $nvcommdir/nvshmem/include +prepend-path CPATH $nvcompdir/extras/qd/include/qd + +prepend-path MANPATH $nvcompdir/man diff --git a/Programming/perl/build b/Programming/perl/build index 8a481af..140372a 100755 --- a/Programming/perl/build +++ b/Programming/perl/build @@ -1,10 +1,5 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://www.cpan.org/src/5.0/$P-$V.tar.gz" - -pbuild::compile_in_sourcetree -pbuild::add_to_group 'Programming' - pbuild::configure() { "${SRC_DIR}"/configure.gnu \ --prefix="${PREFIX}" \ diff --git a/Programming/perl/files/config.yaml b/Programming/perl/files/config.yaml new file mode 100644 index 0000000..a3e0fdb --- /dev/null +++ b/Programming/perl/files/config.yaml @@ -0,0 +1,30 @@ +format: 1 +perl: + defaults: + group: Programming + overlay: base + relstage: stable + compile_in_sourcetree: true + urls: + - url: http://www.cpan.org/src/5.0/$P-${V_PKG}.tar.gz + + shasums: + perl-5.30.1.tar.gz: f160169fd7b1bd13d1b78b3fa23a5af91709fe732d2d9504c0b40b445846aff5 + perl-5.30.0.tar.gz: 851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2 + perl-5.28.1.tar.gz: 3ebf85fe65df2ee165b22596540b7d5d42f84d4b72d84834f74e2e0b8956c347 + perl-5.26.1.tar.gz: e763aa485e8dc1a70483dbe6d615986bbf32b977f38016480d68c99237e701dd + perl-5.10.1.tar.gz: cb7f26ea4b2b28d6644354d87a269d01cac1b635287dae64e88eeafa24b44f35 + perl-5.8.5.tar.gz: 3dd1cba53ce6348ed5119b5f7d1ef6cd4d165f89e4ecc7c21adf7932e0df2709 + perl-5.8.1.tar.gz: 90f5ef25b993cea2def2648d7bca9e351f2e417004cdc76fa02a9ec235ce4490 + + versions: + 5.40.2;5.40.1: + config: + + 5.30.0;5.28.1: + config: + relstage: stable + + 5.10.1;5.26.1: + config: + relstage: deprecated diff --git a/Programming/ruby/build b/Programming/ruby/build new file mode 100755 index 0000000..a3145ee --- /dev/null +++ b/Programming/ruby/build @@ -0,0 +1,5 @@ +#!/usr/bin/env modbuild + +pbuild::install(){ + ruby-install --prefix "${PREFIX}" ruby "${V_PKG}" +} diff --git a/Programming/ruby/files/config.yaml b/Programming/ruby/files/config.yaml new file mode 100644 index 0000000..fa819c2 --- /dev/null +++ b/Programming/ruby/files/config.yaml @@ -0,0 +1,16 @@ +--- +format: 1 +ruby: + defaults: + group: Programming + relstage: stable + docfiles: + configure_args: + build_functions: + prep: [] + configure: [] + compile: [] + versions: + 3.4.4: + config: + build_requires: [ruby-install/0.10.1] diff --git a/Programming/ruby/modulefile b/Programming/ruby/modulefile new file mode 100644 index 0000000..2de7128 --- /dev/null +++ b/Programming/ruby/modulefile @@ -0,0 +1,13 @@ +#%Module1.0 + +module-whatis "Ruby, open source programming language" +module-url "https://www.ruby-lang.org/" +module-license "https://www.ruby-lang.org/en/about/license.txt" +module-maintainer "Achim Gsell " + +module-help " +Ruby is a dynamic, open source programming language with a focus on +simplicity and productivity. It has an elegant syntax that is natural +to read and easy to write. +" + diff --git a/System/bash/build-xml b/System/bash/build-xml new file mode 100755 index 0000000..6e021f3 --- /dev/null +++ b/System/bash/build-xml @@ -0,0 +1,2 @@ +#!/usr/bin/env modbuild + diff --git a/System/bash/files/config.yaml b/System/bash/files/config.yaml new file mode 100644 index 0000000..b1ff680 --- /dev/null +++ b/System/bash/files/config.yaml @@ -0,0 +1,19 @@ +format: 1 +bash: + defaults: + relstage: stable + group: System + overlay: base + urls: + - url: https://ftp.gnu.org/gnu/$P/$P-$V.tar.gz + + shasums: + bash-4.3.30.tar.gz: 317881019bbf2262fb814b7dd8e40632d13c3608d2f237800a8828fbb8a640dd + bash-5.1.tar.gz: cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa + bash-5.1.16.tar.gz: 5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558 + bash-5.2.21.tar.gz: c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8 + versions: + 4.3.30;5.1;5.1.16: + 5.2.21: + config: + relstage: unstable diff --git a/System/getopt/build b/System/getopt/build index 6f25994..b472075 100755 --- a/System/getopt/build +++ b/System/getopt/build @@ -1,13 +1,5 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "http://frodo.looijaard.name/system/files/software/$P/$P-${V_PKG}.tar.gz" -pbuild::compile_in_sourcetree -pbuild::add_to_group System - -pbuild::pre_configure_Linux() { - pbuild::add_patch "files/Makefile.patch" -} - pbuild::configure() { : } diff --git a/System/getopt/files/config.yaml b/System/getopt/files/config.yaml new file mode 100644 index 0000000..a6f1774 --- /dev/null +++ b/System/getopt/files/config.yaml @@ -0,0 +1,17 @@ +--- +format: 1 +getopt: + defaults: + group: System + overlay: base + relstage: stable + patch_files: [files/Makefile.patch] + compile_in_sourcetree: true + urls: + - url: http://frodo.looijaard.name/system/files/software/$P/$P-${V_PKG}.tar.gz + shasums: + getopt-1.1.6.tar.gz: d0bf1dc642a993e7388a1cddfb9409bed375c21d5278056ccca3a0acd09dc5fe + versions: + 1.1.6: + config: + build_requires: [gettext/0.19.8] diff --git a/System/patchelf/build b/System/patchelf/build index 37dad10..bd8e687 100755 --- a/System/patchelf/build +++ b/System/patchelf/build @@ -1,11 +1,5 @@ #!/usr/bin/env modbuild -# :FIXME: needs review - -pbuild::set_download_url "https://github.com/NixOS/$P/archive/$V.tar.gz" "$P-$V.tar.gz" - -pbuild::add_to_group 'System' - pbuild::post_prep() { cd "${SRC_DIR}" ./bootstrap.sh diff --git a/System/patchelf/files/config.yaml b/System/patchelf/files/config.yaml new file mode 100644 index 0000000..523990d --- /dev/null +++ b/System/patchelf/files/config.yaml @@ -0,0 +1,22 @@ +format: 1 +patchelf: + defaults: + group: System + overlay: base + relstage: stable + urls: + - url: https://github.com/NixOS/$P/archive/$V.tar.gz + name: $P-$V.tar.gz + shasums: + patchelf-0.8.1.tar.bz2: 12367e9ce9c315a26e14f11db8542e2e0f3a877aff52590912111268cb775bef7ce713368eb3759df6823f457a7b6d0419fd02c231d40db5dd0b853f41caf254 + patchelf-0.11.tar.gz: b156bad513d5bac33aaf61d5f04d5a78efc81abf8c0ccb851f605e1137c21e671b4933263a47543daf5064db5e83c9afa836b1aea143fca7d8e6a18ebf96beb8 + patchelf-0.12.tar.gz: 2563a5b22b90392d5755d9a08022daf8570fa1b741becbbca92548d0a2f82f7ee21175a2c34816a4653c89c2219bf59b1440304b0fa2d49842e398ab18b9923c + patchelf-0.14.5.tar.gz: ca6ef65d53842a0e38f43aeb0a476a537c29c8528a5f613bb1ef16e08f6756d9 + patchelf-0.18.0.tar.gz: 1451d01ee3a21100340aed867d0b799f46f0b1749680028d38c3f5d0128fb8a7 + + versions: + 0.8.1;0.11;0.12;0.14.5: + 0.18.0: + config: + build_requires: [gcc/12.3.0] + diff --git a/System/ruby-install/build b/System/ruby-install/build new file mode 100755 index 0000000..04d0972 --- /dev/null +++ b/System/ruby-install/build @@ -0,0 +1,19 @@ +#!/usr/bin/env modbuild + +pbuild::configure() { + : +} + +pbuild::compile() { + : +} + +pbuild::install() { + make -e install +} + +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/System/ruby-install/files/config.yaml b/System/ruby-install/files/config.yaml new file mode 100644 index 0000000..6de68c2 --- /dev/null +++ b/System/ruby-install/files/config.yaml @@ -0,0 +1,17 @@ +--- +format: 1 +ruby-install: + defaults: + group: System + overlay: base + relstage: stable + patch_files: [] + compile_in_sourcetree: true + urls: + - url: https://github.com/postmodern/$P/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz + shasums: + ruby-install-0.10.1.tar.gz: 7f563af2bae257c006a5dba0b1976e0885d3814332cc4391eeaa88d702753289 + versions: + 0.10.1: + config: + build_requires: [] diff --git a/System/ruby-install/modulefile b/System/ruby-install/modulefile new file mode 100644 index 0000000..d40eb1c --- /dev/null +++ b/System/ruby-install/modulefile @@ -0,0 +1,11 @@ +#%Module1.0 + +module-whatis "Ruby installer" +module-url "https://github.com/postmodern/ruby-install" +module-license "MIT" +module-maintainer "Achim Gsell " + +module-help " +Installs Ruby, JRuby, TruffleRuby (native / GraalVM), or mruby. +" + diff --git a/Tools/ANSYS/build b/Tools/ANSYS/build index b961793..595506c 100755 --- a/Tools/ANSYS/build +++ b/Tools/ANSYS/build @@ -1,7 +1,5 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'Tools' - pbuild::prep() { : } diff --git a/Tools/ANSYS/files/config.yaml b/Tools/ANSYS/files/config.yaml new file mode 100644 index 0000000..7daa5fb --- /dev/null +++ b/Tools/ANSYS/files/config.yaml @@ -0,0 +1,28 @@ +format: 1 +ANSYS: + defaults: + group: Tools + relstage: stable + shasums: + versions: + 2024R2: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: stable + overlay: merlin + use_overlays: [PSI] + use_flags: [merlin7] + 2023R2: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: unstable + overlay: merlin + use_overlays: [PSI] + use_flags: [merlin7] + 2022R2: + variants: + - systems: [.*.merlin7.psi.ch] + relstage: stable + overlay: merlin + use_overlays: [PSI] + use_flags: [merlin7] diff --git a/Tools/ANSYS/files/variants.overlay_alps b/Tools/ANSYS/files/variants.overlay_alps index 8852d90..3353250 100644 --- a/Tools/ANSYS/files/variants.overlay_alps +++ b/Tools/ANSYS/files/variants.overlay_alps @@ -1 +1,2 @@ ANSYS/2022R2 stable +ANSYS/2024R1 stable diff --git a/Tools/ANSYS/files/variants.overlay_merlin b/Tools/ANSYS/files/variants.overlay_merlin index 7590380..3b872ee 100644 --- a/Tools/ANSYS/files/variants.overlay_merlin +++ b/Tools/ANSYS/files/variants.overlay_merlin @@ -3,4 +3,5 @@ ANSYS/2020R2 stable ANSYS/2021R1 stable ANSYS/2021R2 stable ANSYS/2022R1 stable -ANSYS/2022R2 unstable +ANSYS/2022R2 stable +ANSYS/2023R2 stable diff --git a/Tools/ANSYS/modulefile b/Tools/ANSYS/modulefile index 1f33b35..8705cca 100644 --- a/Tools/ANSYS/modulefile +++ b/Tools/ANSYS/modulefile @@ -32,6 +32,8 @@ prepend-path PATH $PREFIX/$version/polyflow/bin prepend-path PATH $PREFIX/$version/RSM/bin prepend-path PATH $PREFIX/$version/SystemCoupling/bin prepend-path PATH $PREFIX/$version/TurboGrid/bin +# 20.09.2023 add lumerical bin +prepend-path PATH $PREFIX/$version/lumerical/$version/bin # 07.04.2020 prepend-path PATH $PREFIX/$version/Electronics/Linux64 prepend-path PATH $PREFIX/$version/Framework/bin/Linux64 @@ -50,5 +52,8 @@ prepend-path LD_LIBRARY_PATH $PREFIX/$version/CFX/tools/qwt-6.1.2/linx64/lib prepend-path LD_LIBRARY_PATH $PREFIX/$version/CFX/tools/qwtpolar-1.1.1/linx64/lib prepend-path LD_LIBRARY_PATH $PREFIX/$version/CFX/tools/xerces-3.2.2/linx64/lib +# Lumerical +prepend-path LD_LIBRARY_PATH $PREFIX/$version/lumerical/$version/lib/ + # RSM prepend-path PATH $PREFIX/$version/RSM/Config/tools/linux diff --git a/Tools/VSCode/build b/Tools/VSCode/build new file mode 100755 index 0000000..89c436d --- /dev/null +++ b/Tools/VSCode/build @@ -0,0 +1,12 @@ +#!/usr/bin/env modbuild + +pbuild::install() { + : + cd "${PREFIX}" + tar --strip-components=1 -xvf "${PMODULES_DISTFILESDIR}/VSCode-${V_PKG}.tar.gz" +} +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Tools/VSCode/files/config.yaml b/Tools/VSCode/files/config.yaml new file mode 100644 index 0000000..aeaa30c --- /dev/null +++ b/Tools/VSCode/files/config.yaml @@ -0,0 +1,27 @@ +--- +format: 1 +VSCode: + defaults: + group: Tools + overlay: base + relstage: stable + systems: [.*] + build_functions: + configure: [] + compile: [] + urls: + - url: https://update.code.visualstudio.com/${V_PKG}/linux-x64/stable + name: VSCode-${V_PKG}.tar.gz + unpacker: none + shasums: + VSCode-1.100.2.tar.gz: 5c2cbbeaa08b92340dce899a78d66be8d92c09b4d75313bfdfc46fb3bddca5c0 + versions: + 1.100.2: + config: + relstage: unstable + 1.87.0: + config: + relstage: stable + 1.38.1_rhel7;1.73.1: + config: + relstage: deprecated diff --git a/Tools/VSCode/modulefile b/Tools/VSCode/modulefile new file mode 100644 index 0000000..e3b9bf6 --- /dev/null +++ b/Tools/VSCode/modulefile @@ -0,0 +1,16 @@ +#%Module1.0 + +module-whatis "lightweight but powerful source code editor" +module-url "https://code.visualstudio.com/docs" +module-license "See: https://code.visualstudio.com/license" +module-maintainer "Achim Gsell " + +module-help " +Visual Studio Code is a lightweight but powerful source code editor +which runs on your desktop and is available for Windows, macOS and +Linux. It comes with built-in support for JavaScript, TypeScript +and Node.js and has a rich ecosystem of extensions for other languages +(such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET +and Unity). Begin your journey with VS Code with these introductory +videos: https://code.visualstudio.com/docs/introvideos/overview +" diff --git a/Tools/asciidoctor/build b/Tools/asciidoctor/build new file mode 100755 index 0000000..362fbec --- /dev/null +++ b/Tools/asciidoctor/build @@ -0,0 +1,6 @@ +#!/usr/bin/env modbuild + +pbuild::install(){ + /usr/bin/which gem + "${RUBY_DIR}/bin/gem" install --install-dir="${PREFIX}" asciidoctor -v "${V_PKG}" +} diff --git a/Tools/asciidoctor/files/config.yaml b/Tools/asciidoctor/files/config.yaml new file mode 100644 index 0000000..4fc02dd --- /dev/null +++ b/Tools/asciidoctor/files/config.yaml @@ -0,0 +1,16 @@ +--- +format: 1 +asciidoctor: + defaults: + group: Tools + relstage: stable + docfiles: + configure_args: + build_functions: + prep: [] + configure: [] + compile: [] + versions: + 2.0.23: + config: + build_requires: [ruby/3.4.4] diff --git a/Tools/asciidoctor/modulefile b/Tools/asciidoctor/modulefile new file mode 100644 index 0000000..8264463 --- /dev/null +++ b/Tools/asciidoctor/modulefile @@ -0,0 +1,11 @@ +#%Module1.0 + +module-whatis "Ruby-based text processor for parsing AsciiDoc" +module-url "https://asciidoctor.org" +module-license "MIT" +module-maintainer "Achim Gsell " + +module-help " +" + +prepend-path GEM_PATH $PREFIX diff --git a/Tools/awscli/build b/Tools/awscli/build new file mode 100755 index 0000000..35c5125 --- /dev/null +++ b/Tools/awscli/build @@ -0,0 +1,12 @@ +#!/usr/bin/env modbuild + +pbuild::install() { + unzip "${PMODULES_DISTFILESDIR}/awscliv2.zip" + ./aws/install -i $PREFIX -b ${PREFIX}/bin --update +} + +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Tools/awscli/files/config.yaml b/Tools/awscli/files/config.yaml new file mode 100644 index 0000000..2759c63 --- /dev/null +++ b/Tools/awscli/files/config.yaml @@ -0,0 +1,27 @@ +--- +format: 1 +awscli: + defaults: + group: Tools + overlay: base + relstage: stable + systems: [.*] + build_functions: + configure: [] + compile: [] + shasums: + versions: + 2.27.22: + config: + relstage: stable + urls: + - url: https://awscli.amazonaws.com/$P-exe-linux-x86_64-$V.zip + name: $P-${V_PKG}.zip + unpacker: none + 2.9.21: + config: + relstage: deprecated + urls: + - url: https://awscli.amazonaws.com/$P-exe-linux-x86_64-$V.zip + name: $P-${V_PKG}.zip + unpacker: none diff --git a/Tools/awscli/modulefile b/Tools/awscli/modulefile new file mode 100644 index 0000000..aa96a06 --- /dev/null +++ b/Tools/awscli/modulefile @@ -0,0 +1,12 @@ +#%Pmodule + +module-whatis "Universal Command Line Interface for Amazon Web Services" +module-url "https://github.com/aws/aws-cli/tree/v2" +module-license "https://github.com/aws/aws-cli/blob/v2/LICENSE.txt" +module-maintainer "Krisztian Pozsa " + +module-help " +The AWS Command Line Interface (AWS CLI) is a unified tool to manage your +AWS services. With just one tool to download and configure, you can control +multiple AWS services from the command line and automate them through scripts. +" diff --git a/Tools/curl/build b/Tools/curl/build new file mode 100755 index 0000000..4d92699 --- /dev/null +++ b/Tools/curl/build @@ -0,0 +1,7 @@ +#!/usr/bin/env modbuild + +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Tools/curl/files/config.yaml b/Tools/curl/files/config.yaml new file mode 100644 index 0000000..a31b6f7 --- /dev/null +++ b/Tools/curl/files/config.yaml @@ -0,0 +1,21 @@ +--- +format: 1 +curl: + defaults: + group: Tools + overlay: base + relstage: stable + configure_args: + - --with-openssl + docfiles: [] + urls: + - url: https://curl.se/download/$P-${V_PKG}.tar.gz + shasums: + + versions: + 8.13.0: + config: + build_requires: [libpsl/0.21.5, openssl/3.4.1] + 8.11.0: + config: + build_requires: [libpsl/0.21.5, openssl/1.1.1w] diff --git a/Tools/curl/modulefile b/Tools/curl/modulefile new file mode 100644 index 0000000..4dafa22 --- /dev/null +++ b/Tools/curl/modulefile @@ -0,0 +1,15 @@ +#%Pmodule + +module-whatis "command line tool and library for transferring data with URLs" +module-url "https://curl.se" +module-license "See \$PREFIX/share/doc/curl/curl.txt" +module-maintainer "Achim Gsell " + +module-help " +curl is used in command lines or scripts to transfer data. curl is also +libcurl, used in cars, television sets, routers, printers, audio equipment, +mobile phones, tablets, medical devices, settop boxes, computer games, +media players and is the Internet transfer engine for countless software +applications in over twenty billion installations. +" + diff --git a/Tools/datacatalog/README.md b/Tools/datacatalog/README.md index 7d08119..1ab8cc7 100644 --- a/Tools/datacatalog/README.md +++ b/Tools/datacatalog/README.md @@ -4,6 +4,18 @@ This module provides tools to interface with the Data Catalog (discovery.psi.ch). +## Version Numbers + +Prior to version 2, each command had its own version. The pmodule version +roughly tracked the datasetIngestor version. However, some pmodules were +updated manually with more recent binaries, so in general there is no way to +check the versions contained in older pmodules other than running each command +and parsing the output. + +From v2.2.0 all CLI commands share a common version, and the pmodules will +reflect this. The SciCat GUI is still versioned independently, but this is +planned to be brought in sync with the CLI and pmodule soon. + ## Installation Run `./build ` to install the latest version. This downloads the @@ -18,3 +30,18 @@ the conda module is not activated. See Programming/anaconda/2019.07/conda-env-defs/scicat_client for environment installation details. +### SciCat GUI + +The SciCat GUI is installed manually to `bin`. As of 2.2.0, no standard release +cycle is used for the GUI. It should be built from source in the [rollout +repo](https://git.psi.ch/MELANIE/rollout/-/tree/master/Software/00-General/SciCatArchiverGUI) +and manually coppied. + +An issue in 2.2.0 and earlier prevents the GUI from running on RHEL 8. This was +fixed with a manual wrapper script which produces an error on RHEL 8. + +# TODO + +- [ ] SciCat should be downloaded and installed in the build script. (This is + planned after the GUI is migrated to github and CI/CD implemented.) + diff --git a/Tools/datacatalog/build b/Tools/datacatalog/build index 77e2ff3..d3a7ddb 100755 --- a/Tools/datacatalog/build +++ b/Tools/datacatalog/build @@ -1,32 +1,22 @@ #!/usr/bin/env modbuild pbuild::add_to_group 'Tools' - -pbuild::prep() { - : -} +pbuild::set_download_url https://github.com/paulscherrerinstitute/scicat-cli/releases/download/v${V_PKG}/scicat-cli_v${V_PKG}_Linux_x86_64.tar.gz pbuild::configure() { - : + : } pbuild::compile() { - : + : } pbuild::install() { - mkdir -p "$PREFIX/bin" + mkdir -p "$PREFIX/bin" - /usr/bin/curl -o "$PREFIX/bin/datasetIngestor" https://intranet.psi.ch/pub/Daas/WebHome/datasetIngestor - chmod +x "$PREFIX/bin/datasetIngestor" + cp $SRC_DIR/dataset{Ingestor,Retriever,Archiver} "$PREFIX/bin" - /usr/bin/curl -o "$PREFIX/bin/datasetRetriever" https://intranet.psi.ch/pub/Daas/WebHome/datasetRetriever - chmod +x "$PREFIX/bin/datasetRetriever" - - /usr/bin/curl -o "$PREFIX/bin/datasetArchiver" https://intranet.psi.ch/pub/Daas/WebHome/datasetArchiver - chmod +x "$PREFIX/bin/datasetArchiver" - - # Hardcoded; could be made version-specific in the future if needed - ln -s "${PMODULES_ROOT}/Programming/anaconda/2019.07/conda/envs/scicat_client-0.1.0/bin/scicat_client" "$PREFIX/bin/scicat_client" + # Hardcoded; could be made version-specific in the future if needed + ln -s "${PMODULES_ROOT}/Programming/anaconda/2019.07/conda/envs/scicat_client-0.1.0/bin/scicat_client" "$PREFIX/bin/scicat_client" } diff --git a/Tools/datacatalog/files/variants.Linux b/Tools/datacatalog/files/variants.Linux index bd3c881..36cd865 100644 --- a/Tools/datacatalog/files/variants.Linux +++ b/Tools/datacatalog/files/variants.Linux @@ -1,7 +1,10 @@ -datacatalog/1.1.10 stable -datacatalog/1.1.9 removed -datacatalog/1.1.15 removed datacatalog/1.1.3 removed datacatalog/1.1.4 removed -datacatalog/1.1.7 removed -datacatalog/1.1.8 removed +datacatalog/1.1.7 deprecated +datacatalog/1.1.8 deprecated +datacatalog/1.1.9 deprecated +datacatalog/1.1.15 removed +datacatalog/1.1.10 deprecated +datacatalog/1.1.11 deprecated +datacatalog/2.2.0 stable +datacatalog/2.2.1 stable diff --git a/Tools/datacatalog/modulefile b/Tools/datacatalog/modulefile index fb6329c..d52cf13 100644 --- a/Tools/datacatalog/modulefile +++ b/Tools/datacatalog/modulefile @@ -1,11 +1,16 @@ #%Module1.0 module-whatis "SciCat datacatalog related tools" -module-url "https://melanie.gitpages.psi.ch/SciCatPages/" -module-license "GPL-V3" -module-maintainer "Stephan Egli " +module-url "https://scicatproject.github.io/documentation/Ingestor/ingestManual.html" +module-license "BSD 3" +module-maintainer "Spencer Bliven " module-help " Data catalog ingest and retrieve tools. -" +Source code for the command line tools (datasetIngestor and datasetRetreiver) +is available at https://github.com/paulscherrerinstitute/scicat-cli. Source +code for the SciCat GUI is available from PSI at +https://git.psi.ch/MELANIE/rollout + +" diff --git a/Tools/emacs/build-xml b/Tools/emacs/build-xml new file mode 100755 index 0000000..a853bc4 --- /dev/null +++ b/Tools/emacs/build-xml @@ -0,0 +1,34 @@ +#!/usr/bin/env modbuild + +CC='' +CXX='' +eval $(modulecmd bash use System) + +pbuild::pre_configure() { + case ${OS} in + Darwin ) + pbuild::add_configure_args '--with-ns' '--with-jpeg=no' + ;; + Linux ) + # with 24.5 configure complains about missing libjpeg even it + # is installed! + pbuild::add_configure_args '--with-jpeg=no' + ;; + *) + ;; + esac + install -m 0755 -d "${PREFIX}" +} + +pbuild::post_install() { + mkdir -p "${PREFIX}/bin" + install -m 0755 "${BUILDBLOCK_DIR}/Emacs" "${PREFIX}/bin" + install -m 0755 "${BUILDBLOCK_DIR}/Emacsclient" "${PREFIX}/bin" + #cp -a "${GNUTLS_LIBRARY_DIR}"/libgnutls.so.* "${PREFIX}/lib" + #cp -a "${NETTLE_LIBRARY_DIR}"/libnettle.so.* "${PREFIX}/lib" +} + +pbuild::post_install_Darwin() { + cp -a "${BUILD_DIR}/nextstep/Emacs.app" "${PREFIX}" +} + diff --git a/Tools/emacs/files/config.yaml b/Tools/emacs/files/config.yaml new file mode 100644 index 0000000..78ebdb8 --- /dev/null +++ b/Tools/emacs/files/config.yaml @@ -0,0 +1,16 @@ +format: 1 +emacs: + defaults: + group: Tools + relstage: stable + docfiles: + urls: + - url: https://ftp.gnu.org/gnu/emacs/$P-${V_PKG}.tar.xz + shasums: + emacs-29.1.tar.xz: d2f881a5cc231e2f5a03e86f4584b0438f83edd7598a09d24a21bd8d003e2e01 + versions: + 29.1: + config: + relstage: unstable + runtime_deps: [gnutls/3.5.19] + build_requires: [libidn2/2.3.4, libungif/4.1.4, tiff/4.0.9, nettle/3.4] diff --git a/Tools/emacs/files/variants b/Tools/emacs/files/variants index ed4f327..d1fd572 100644 --- a/Tools/emacs/files/variants +++ b/Tools/emacs/files/variants @@ -3,3 +3,4 @@ emacs/25.3 stable b:libungif/4.1.4 b:tiff/4.0.9 emacs/26.1 stable b:libungif/4.1.4 b:tiff/4.0.9 b:nettle/3.4 gnutls/3.5.19 emacs/26.3 stable b:libungif/4.1.4 b:tiff/4.0.9 b:nettle/3.4 gnutls/3.5.19 emacs/27.2 stable b:libungif/4.1.4 b:tiff/4.0.9 b:nettle/3.4 gnutls/3.5.19 +emacs/29.1 unstable b:libungif/4.1.4 b:tiff/4.0.9 b:nettle/3.4 gnutls/3.5.19 diff --git a/Tools/fpart/build b/Tools/fpart/build new file mode 100755 index 0000000..916ff80 --- /dev/null +++ b/Tools/fpart/build @@ -0,0 +1,6 @@ +#!/usr/bin/env modbuild + +# we need to generate the configure file +pbuild::post_prep() { + autoreconf -i +} diff --git a/Tools/fpart/files/config.yaml b/Tools/fpart/files/config.yaml new file mode 100644 index 0000000..9b2535a --- /dev/null +++ b/Tools/fpart/files/config.yaml @@ -0,0 +1,18 @@ +--- +format: 1 +fpart: + defaults: + group: Tools + overlay: base + relstage: stable + configure_with: autotools + build_variants: first_match + target_cpus: [x86_64] + systems: [rhel8] + docfiles: [COPYING, README.md, Changelog.md] + urls: + - url: https://github.com/martymac/$P/archive/refs/tags/$P-${V_PKG}.tar.gz + shasums: + fpart-1.7.0.tar.gz: e5f82dd90001ed53200b2383bcfd520b1d8ee06d6a2a75b39d37d68daef20c88 + versions: + 1.7.0: diff --git a/Tools/fpart/modulefile b/Tools/fpart/modulefile new file mode 100644 index 0000000..0c23a00 --- /dev/null +++ b/Tools/fpart/modulefile @@ -0,0 +1,12 @@ +#%Module1.0 + +module-whatis "Fpart is a Filesystem partitioner" +module-url "https://www.fpart.org/" +module-license "BSD 2 Clause" +module-maintainer "Hans-Nikolai Viessmann " module-help " -OpenSSL is an open source project that provides a robust, commercial-grade, -and full-featured toolkit for the Transport Layer Security (TLS) and Secure -Sockets Layer (SSL) protocols. It is also a general-purpose cryptography -library. For more information about the team and community around the -project, or to start making your own contributions, start with the community -page. To get the latest news, download the source, and so on, please see the -sidebar or the buttons at the top of every page. +GnuTLS is a secure communications library implementing the SSL, TLS and +DTLS protocols and technologies around them. It provides a simple C +language application programming interface (API) to access the secure +communications protocols as well as APIs to parse and write X.509, +PKCS #12, and other required structures. + +The project strives to provide a secure communications back-end, simple +to use and integrated with the rest of the base Linux libraries. A back- +end designed to work and be secure out of the box, keeping the complexity +of TLS and PKI out of application code. " -append-path PKG_CONFIG_PATH $PREFIX/lib/pkgconfig +#append-path PKG_CONFIG_PATH $PREFIX/lib/pkgconfig diff --git a/Tools/nvim/build b/Tools/nvim/build new file mode 100755 index 0000000..2070f84 --- /dev/null +++ b/Tools/nvim/build @@ -0,0 +1,14 @@ +#!/usr/bin/env modbuild + +pbuild::install_linux_x86_64() { + cd "${PREFIX}" + tar --strip-components=1 -xvf "${PMODULES_DISTFILESDIR}/${P}-${V_PKG}-linux-x86_64.tar.gz" +} + +} + +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Tools/nvim/files/config.yaml b/Tools/nvim/files/config.yaml new file mode 100644 index 0000000..59fc2a7 --- /dev/null +++ b/Tools/nvim/files/config.yaml @@ -0,0 +1,20 @@ +--- +format: 1 +nvim: + defaults: + group: Tools + relstage: stable + shasums: + nvim-0.11.1-linux-x86_64.tar.gz: 92ecb2dbdfbd0c6d79b522e07c879f7743c5d395d0a4f13b0d4f668f8565527a + versions: + 0.11.1: + config: + target_cpus: [x86_64] + urls: + - url: https://github.com/neovim/neovim/releases/download/v${V_PKG}/${P}-linux-x86_64.tar.gz + name: ${P}-${V_PKG}-linux-x86_64.tar.gz + unpacker: none + build_functions: + configure: [] + compile: [] + install: [pbuild::install_linux_x86_64] diff --git a/Tools/nvim/modulefile b/Tools/nvim/modulefile new file mode 100644 index 0000000..85665e6 --- /dev/null +++ b/Tools/nvim/modulefile @@ -0,0 +1,11 @@ +#%Pmodule + +module-whatis "hyperextensible Vim-based text editor" +module-url "https://neovim.io" +module-license "iApache License Version 2.0" +module-maintainer "Achim Gsell " + +module-help " +hyperextensible Vim-based text editor +" + diff --git a/Tools/openssl/build b/Tools/openssl/build index 3d64adb..3f0ea3f 100755 --- a/Tools/openssl/build +++ b/Tools/openssl/build @@ -1,24 +1,13 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "https://www.openssl.org/source/$P-$V.tar.gz" - # use system gcc to compile -declare -rx CC=gcc +#declare -rx CC=gcc -pbuild::add_to_group 'Tools' -pbuild::compile_in_sourcetree - -pbuild::pre_configure_Darwin() { - pbuild::add_configure_args 'darwin64-x86_64-cc' -} - -pbuild::pre_configure_Linux() { - pbuild::add_configure_args 'linux-x86_64' -} - -pbuild::configure() { +pbuild::configure(){ export CFLAGS='-fPIC' - "${SRC_DIR}"/Configure shared --prefix="${PREFIX}" "${CONFIGURE_ARGS[@]}" \ + local -r os=$(uname -s) + local -r machine=$(uname -m) + "${SRC_DIR}"/Configure shared --prefix="${PREFIX}" "${os,,}-${machine}" \ || exit 1 } diff --git a/Tools/openssl/files/config.yaml b/Tools/openssl/files/config.yaml new file mode 100644 index 0000000..d85cbe4 --- /dev/null +++ b/Tools/openssl/files/config.yaml @@ -0,0 +1,43 @@ +--- +format: 1 +openssl: + defaults: + group: Tools + overlay: base + relstage: stable + compile_in_sourcetree: true + urls: + - url: https://www.openssl.org/source/$P-$V.tar.gz + shasums: + versions: + 3.4.1: + config: + docfiles: + - ACKNOWLEDGEMENTS.md + - AUTHORS.md + - CHANGES.md + - CODE-OF-CONDUCT.md + - CONTRIBUTING.md + - HACKING.md + - INSTALL.md + - LICENSE.txt + - NEWS.md + - NOTES-ANDROID.md + - NOTES-ANSI.md + - NOTES-DJGPP.md + - NOTES-NONSTOP.md + - NOTES-PERL.md + - NOTES-POSIX.md + - NOTES-UNIX.md + - NOTES-VALGRIND.md + - NOTES-VMS.md + - NOTES-WINDOWS.md + - README-ENGINES.md + - README-FIPS.md + - README-PROVIDERS.md + - README-QUIC.md + - README.md + - SUPPORT.md + build_requires: + - perl/5.40.1 + diff --git a/Tools/openssl/files/variants.rhel7 b/Tools/openssl/files/variants.rhel7 new file mode 100644 index 0000000..616da08 --- /dev/null +++ b/Tools/openssl/files/variants.rhel7 @@ -0,0 +1,11 @@ +openssl/1.0.2h deprecated +openssl/1.0.2j stable +openssl/1.0.2m stable +openssl/1.0.2o stable +openssl/1.0.2r stable +openssl/1.1.1g stable +openssl/1.1.1k stable +openssl/1.1.1l stable +openssl/1.1.1m stable +openssl/1.1.1v stable +openssl/1.1.1w stable diff --git a/Tools/restic/build b/Tools/restic/build new file mode 100755 index 0000000..fec0ffc --- /dev/null +++ b/Tools/restic/build @@ -0,0 +1,11 @@ +#!/usr/bin/env modbuild + +pbuild::install() { + install -m 0755 -d "${PREFIX}/bin" + install -m 0755 "${SRC_DIR}/restic_${V_PKG}_linux_amd64" "${PREFIX}/bin/restic" +} +# Local Variables: +# mode: sh +# sh-basic-offset: 8 +# tab-width: 8 +# End: diff --git a/Tools/restic/files/config.yaml b/Tools/restic/files/config.yaml new file mode 100644 index 0000000..9bb8b72 --- /dev/null +++ b/Tools/restic/files/config.yaml @@ -0,0 +1,20 @@ +format: 1 +restic: + defaults: + group: Tools + overlay: base + relstage: stable + systems: [.*] + docfiles: [] + build_functions: + configure: [] + compile: [] + shasums: + restic_0.18.0_linux_amd64.bz2: 98f6dd8bf5b59058d04bfd8dab58e196cc2a680666ccee90275a3b722374438e + versions: + 0.18.0: + config: + target_cpus: [x86_64] + urls: + - url: https://github.com/restic/restic/releases/download/v${V_PKG}/restic_${V_PKG}_linux_amd64.bz2 + unpacker: 7z diff --git a/Tools/restic/modulefile b/Tools/restic/modulefile new file mode 100644 index 0000000..5eb56d9 --- /dev/null +++ b/Tools/restic/modulefile @@ -0,0 +1,13 @@ +#%Pmodule + +module-whatis "fast and secure backup program" +module-url "https://restic.readthedocs.io/en/stable/index.html" +module-license "BSD 2-Clause License" +module-maintainer "Achim Gsell " + +module-help " +Restic is a fast and secure backup program. In the following sections, we +will present typical workflows, starting with installing, preparing a new +repository, and making the first backup. +" + diff --git a/Tools/visit/build b/Tools/visit/build new file mode 100755 index 0000000..ba4f528 --- /dev/null +++ b/Tools/visit/build @@ -0,0 +1,6 @@ +#!/usr/bin/env modbuild + +pbuild::install() { + cd "${PMODULES_DISTFILESDIR}" + bash "./visit-install-${V_PKG}" ${V} linux-$(uname -p) ${PREFIX} +} diff --git a/Tools/visit/files/config.yaml b/Tools/visit/files/config.yaml new file mode 100644 index 0000000..74f630c --- /dev/null +++ b/Tools/visit/files/config.yaml @@ -0,0 +1,24 @@ +--- +format: 1 +visit: + defaults: + group: Tools + overlay: base + relstage: stable + systems: [sles.*, rhel.*] + docfiles: [Copyright, NEWS, README] + build_functions: + configure: [] + compile: [] + versions: + 3.4.2: + config: + urls: + - url: https://github.com/visit-dav/visit/releases/download/v${V_PKG}/visit-install3_4_2 + name: visit-install-${V_PKG} + unpacker: none + - url: https://github.com/visit-dav/visit/releases/download/v${V_PKG}/visit3_4_2.linux-x86_64-rocky8.tar.gz + name: visit3_4_2.linux-x86_64.tar.gz + unpacker: none + relstage: stable + diff --git a/Tools/visit/modulefile b/Tools/visit/modulefile new file mode 100644 index 0000000..722eb8f --- /dev/null +++ b/Tools/visit/modulefile @@ -0,0 +1,12 @@ +#%Pmodule + +module-whatis "Open Source, interactive, scalable, visualization, animation and analysis tool" +module-url "https://visit-dav.github.io/visit-website/about/" +module-license "BSD 3-Clause License" +module-maintainer "Achim Gsell " + +module-help " +VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool. +From Unix, Windows or Mac workstations, users can interactively visualize and analyze data ranging in scale from small (<10 core) desktop-sized projects to large (>10,000 core) leadership-class computing facility simulation campaigns. +" + diff --git a/Tools/xz/build b/Tools/xz/build index 6501335..145bb9e 100755 --- a/Tools/xz/build +++ b/Tools/xz/build @@ -1,24 +1,12 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'Tools' - -pbuild::set_download_url \ - "https://sourceforge.net/projects/lzmautils/files/$P-${V_PKG}.tar.gz" - -pbuild::set_sha256sum 'xz-5.2.4.tar.gz:b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145' -pbuild::install_docfiles \ - AUTHORS \ - COPYING \ - COPYING.GPLv2 \ - COPYING.GPLv3 \ - COPYING.LGPLv2.1 \ - ChangeLog \ - NEWS \ - PACKAGERS \ - README \ - THANKS \ - TODO - +pbuild::post_prep(){ + # autogen.sh exits with an error if po4a + # is not installed. For now we ignore this. + # :FIXME: + # build a po4a module + ./autogen.sh || : +} # Local Variables: # mode: sh # sh-basic-offset: 8 diff --git a/Tools/xz/files/config.yaml b/Tools/xz/files/config.yaml new file mode 100644 index 0000000..088b846 --- /dev/null +++ b/Tools/xz/files/config.yaml @@ -0,0 +1,26 @@ +--- +format: 1 +xz: + defaults: + group: Tools + overlay: base + relstage: stable + docfiles: + - AUTHORS + - COPYING + - COPYING.GPLv2 + - COPYING.GPLv3 + - COPYING.LGPLv2.1 + - ChangeLog + - NEWS + - PACKAGERS + - README + - THANKS + - TODO + urls: + - url: https://sourceforge.net/projects/lzmautils/files/$P-${V_PKG}.tar.gz + shasums: + versions: + 5.8.0: + config: +