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/build-yaml b/Compiler/OpenBLAS/build-yaml deleted file mode 100755 index 87289c3..0000000 --- a/Compiler/OpenBLAS/build-yaml +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::install_docfiles 'LICENSE' 'README.md' - -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 index 8cdf3f0..7d5db3f 100644 --- a/Compiler/OpenBLAS/files/config.yaml +++ b/Compiler/OpenBLAS/files/config.yaml @@ -10,6 +10,12 @@ OpenBLAS: 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 @@ -26,11 +32,24 @@ OpenBLAS: 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] + gcc: [12.3.0, 13.1.0, 13.2.0] build_requires: [cmake/3.23.2] relstage: unstable overlay: devel 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/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/hdf5_serial/files/config.yaml b/Compiler/hdf5_serial/files/config.yaml index 00cbb15..4026415 100644 --- a/Compiler/hdf5_serial/files/config.yaml +++ b/Compiler/hdf5_serial/files/config.yaml @@ -202,3 +202,13 @@ hdf5_serial: 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/impi/build b/Compiler/impi/build index 84a2e40..6e021f3 100755 --- a/Compiler/impi/build +++ b/Compiler/impi/build @@ -1,20 +1,2 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'Compiler' - -pbuild::prep() { - : -} - -pbuild::configure() { - : -} - -pbuild::compile() { - : -} - -pbuild::install() { - : -} - diff --git a/Compiler/impi/files/config.yaml b/Compiler/impi/files/config.yaml new file mode 100644 index 0000000..df534a9 --- /dev/null +++ b/Compiler/impi/files/config.yaml @@ -0,0 +1,105 @@ +--- +# yamllint disable rule:line-length +format: 1 +impi: + defaults: + group: Compiler + overlay: base + relstage: stable + build_functions: + prep: [] + configure: [] + compile: [] + install: [] + + versions: + 22.2: + variants: + - systems: [merlin-.*\.psi.ch] + group_deps: + compiler: + intel: [22.2] + + 22.1: + variants: + - systems: [merlin-.*\.psi.ch] + group_deps: + compiler: + intel: [22.1] + + 21.4: + variants: + - systems: [merlin-.*\.psi.ch] + group_deps: + compiler: + intel: [21.4] + + 20.4: + variants: + - systems: [merlin-.*\.psi.ch] + group_deps: + compiler: + intel: [20.4] + + 19.4: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [19.4] + + 19.3: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [19.3] + + 18.4: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [18.4] + 18.3: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [18.3] + + 18.2: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [18.2] + + 17.8: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [17.8] + + 5.1: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [16.1, 16.2, 16.3, 17.1] + 5.0: + variants: + - systems: [merlin-.*\.psi.ch] + relstage: deprecated + group_deps: + compiler: + intel: [15.2, 15.3] + diff --git a/Compiler/impi/files/variants.rhel6 b/Compiler/impi/files/variants.rhel6 deleted file mode 100644 index 01ef3a6..0000000 --- a/Compiler/impi/files/variants.rhel6 +++ /dev/null @@ -1,16 +0,0 @@ -impi/5.0 deprecated intel/15.2 -impi/5.0 deprecated intel/15.3 -impi/5.1 deprecated intel/16.1 -impi/5.1 deprecated intel/16.2 -impi/5.1 deprecated intel/16.3 -impi/5.1 deprecated intel/17.1 -impi/17.8 deprecated intel/17.8 -impi/18.2 deprecated intel/18.2 -impi/18.3 deprecated intel/18.3 -impi/18.4 deprecated intel/18.4 -impi/19.3 deprecated intel/19.3 -impi/19.4 deprecated intel/19.4 -impi/20.4 stable intel/20.4 -impi/21.4 stable intel/21.4 -impi/22.1 stable intel/22.1 -impi/22.2 unstable intel/22.2 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 ba87cf3..ba72c49 100755 --- a/Compiler/openmpi/build +++ b/Compiler/openmpi/build @@ -1,51 +1,75 @@ #!/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 (( 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 [[ -v CUDA_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 [[ -v LIBEVENT_VERSION ]]; then + std::info "Enabling libevent ${LIBEVENT_VERSION}." pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" fi if [[ -v PMIX_VERSION ]]; then + std::info "Enabling PMIX ${PMIX_VERSION}." unset PMIX_VERSION pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" 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 [[ -v LIBFABRIC_VERSION ]]; then + std::info "Enabling libfabric ${LIBFABRIC_VERSION}." pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}" fi - + if [[ -v UCX_VERSION ]]; then + std::info "Enabling UCX ${UCX_VERSION}." pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}" fi @@ -55,56 +79,78 @@ pbuild::pre_configure() { 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' - fi - if [[ -v CUDA_VERSION ]]; then - echo "opal_warn_on_missing_libcuda = 0" >> ${PREFIX}/etc/openmpi-mca-params.conf + 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 - 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/build-xml b/Compiler/openmpi/build-xml deleted file mode 100755 index 31bf3b5..0000000 --- a/Compiler/openmpi/build-xml +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env modbuild - -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 [[ -v CUDA_VERSION ]]; then - pbuild::add_configure_args "--with-cuda=${CUDA_HOME}" - fi - - if [[ -v HWLOC_VERSION ]]; then - unset HWLOC_VERSION - pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" - else - pbuild::add_configure_args "--with-hwloc=internal" - fi - - if [[ -v LIBEVENT_VERSION ]]; then - pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}" - fi - - if [[ -v PMIX_VERSION ]]; then - unset PMIX_VERSION - pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}" - fi - - if [[ -v LIBFABRIC_VERSION ]]; then - pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}" - fi - - if [[ -v UCX_VERSION ]]; then - 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 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" - 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' - fi - - if [[ -v 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 -} diff --git a/Compiler/openmpi/files/config.yaml b/Compiler/openmpi/files/config.yaml index 1bac1f8..a0e6909 100644 --- a/Compiler/openmpi/files/config.yaml +++ b/Compiler/openmpi/files/config.yaml @@ -6,10 +6,11 @@ openmpi: group: Compiler overlay: base relstage: stable - systems: [rhel7, rhel8, rhel9] + 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.bz + - 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 @@ -52,8 +53,110 @@ openmpi: 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: 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/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/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 095d00f..f1c1701 100644 --- a/EM/relion/README.md +++ b/EM/relion/README.md @@ -12,4 +12,46 @@ 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 -From version 5.0-beta on, a conda env is required. 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. +## 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 6e3c435..d66be30 100755 --- a/EM/relion/build +++ b/EM/relion/build @@ -1,7 +1,6 @@ #!/usr/bin/env modbuild -pbuild::add_to_group 'EM' -pbuild::use_cmake +PERFORMANCE="yes" PROFILE="no" SP="no" @@ -10,85 +9,131 @@ 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() { +pbuild::pre_configure() { # Section will be switched on for -profile version #----------------------------------------------------------- if [[ "$PROFILE" == "yes" ]]; then - pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=BENCHMARKING" + # 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 #------------------------------------------------------------ - # Section will be switched on for single-precision version # Safe memory usage for multibody refinements #------------------------------------------------------------ if [[ "$SP" == "yes" ]]; then - pbuild::add_configure_args "-DDoublePrec_CPU=OFF" + # 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 #------------------------------------------------------------ + # 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 - wget ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/blush_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_blush" \ + #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/" - #Set Torch Home - pbuild::add_configure_args "-DTORCH_HOME_PATH=$PREFIX/torch" + # 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/" - #Conda - conda env create -f "$SRC_DIR/environment.yml" -p "$PREFIX/conda_env/$P_$V" - pbuild::add_configure_args "-DPYTHON_EXE_PATH=$PREFIX/conda_env/$P_$V/bin/python" + # 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 - - #--------------------------------------------------------------- - - - # CMake-based build - - pbuild::add_configure_args "-DFORCE_OWN_FFTW=ON" - pbuild::add_configure_args "-DFORCE_OWN_FLTK=ON" - pbuild::add_configure_args "-DFORCE_OWN_TBB=ON" - - # 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" - # 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 bbe791e..0000000 --- a/EM/relion/files/variants +++ /dev/null @@ -1,18 +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 -relion/4.0.1-profile 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 -relion/5.0-beta 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 anaconda/2019.07 -relion/5.0-sp 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 anaconda/2019.07 diff --git a/EM/relion/modulefile b/EM/relion/modulefile index ed09173..53760e2 100644 --- a/EM/relion/modulefile +++ b/EM/relion/modulefile @@ -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,32 +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 -setenv RELION_TOPAZ_EXECUTABLE /opt/psi/EM/relion/5.0-sp/conda_env/5.0-beta/bin/topaz -setenv RELION_PYTHON_EXECUTABLE /opt/psi/EM/relion/5.0-sp/conda_env/5.0-beta/bin/python -setenv RELION_TORCH_HOME_PATH /opt/psi/EM/relion/5.0-sp/torch # Version-specific variables -setenv RELION_QSUB_TEMPLATE /opt/psi/EM/relion/$V/scripts/multi_gpu.sh +setenv RELION_QSUB_TEMPLATE /opt/psi/overlays/Alps/EM/relion/$V/scripts/multi_gpu.sh -# See MC2 compatibility matrix: https://intranet.psi.ch/en/bio/motioncor2 -if {[string match "8.0*" $env(CUDA_VERSION)]} { - setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.3.2/bin/MotionCor2_1.3.2-Cuda80" -} elseif {[string match "11.0*" $env(CUDA_VERSION)]} { - setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.4.0/bin/MotionCor2" -} else { - setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.6.4/bin/MotionCor2" -} +setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.6.4/bin/MotionCor2" -# relion 5 features -if {[file exists /opt/psi/EM/relion/$V/conda_env/$V]} { - setenv RELION_TOPAZ_EXECUTABLE /opt/psi/EM/relion/$V/conda_env/$V/bin/topaz - setenv RELION_PYTHON_EXECUTABLE /opt/psi/EM/relion/$V/conda_env/$V/bin/python -} -if {[file exists /opt/psi/EM/relion/$V/torch]} { - setenv RELION_TORCH_HOME_PATH /opt/psi/EM/relion/$V/torch -} +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/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/build-xml b/Libraries/hwloc/build-xml deleted file mode 100755 index f2b8b67..0000000 --- a/Libraries/hwloc/build-xml +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env modbuild - -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 index 418f57f..ba2cd31 100644 --- a/Libraries/hwloc/files/config.yaml +++ b/Libraries/hwloc/files/config.yaml @@ -6,15 +6,21 @@ hwloc: 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.7.1.tar.gz: 4cb0a781ed980b03ad8c48beb57407aa67c4b908e45722954b9730379bc7f6d5 + hwloc-2.11.1.tar.gz: 9f320925cfd0daeaf3a3d724c93e127ecac63750c623654dca0298504aac4c2c hwloc-2.9.1.tar.gz: a440e2299f7451dc10a57ddbfa3f116c2a6c4be1bb97c663edd3b9c7b3b3b4cf + hwloc-2.7.1.tar.gz: 4cb0a781ed980b03ad8c48beb57407aa67c4b908e45722954b9730379bc7f6d5 versions: - 2.7.1: + 2.11.1: config: - relstage: stable - build_requires: cuda/11.5.1 + relstage: unstable + build_requires: [cuda/12.1.1] 2.9.1: config: - relstage: stable - build_requires: cuda/12.1.1 + build_requires: [cuda/12.1.1] + 2.7.1: + config: + build_requires: [cuda/11.5.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/files/config.yaml b/Libraries/libfabric/files/config.yaml index 981efdc..cebfb3f 100644 --- a/Libraries/libfabric/files/config.yaml +++ b/Libraries/libfabric/files/config.yaml @@ -3,14 +3,14 @@ libfabric: defaults: group: Libraries relstage: stable - compile_in_sourcetree: yes + 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 + - 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 @@ -18,3 +18,27 @@ libfabric: 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/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/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/build-xml b/Libraries/pmix/build-xml deleted file mode 100755 index 1ebd0fd..0000000 --- a/Libraries/pmix/build-xml +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::pre_configure() { - if [[ -v HWLOC_PREFIX ]]; then - pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}" - fi - - if [[ -v LIBEVENT_PREFIX ]]; then - pbuild::add_configure_args "--with-libevent=${LIBEVENT_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 "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" -} diff --git a/Libraries/pmix/files/config.yaml b/Libraries/pmix/files/config.yaml index 4585449..e5c3cf5 100644 --- a/Libraries/pmix/files/config.yaml +++ b/Libraries/pmix/files/config.yaml @@ -3,7 +3,9 @@ pmix: defaults: group: Libraries relstage: stable - compile_in_sourcetree: yes + compile_in_sourcetree: true + configure_args: + - --enable-shared docfiles: - AUTHORS - README.md @@ -11,18 +13,24 @@ pmix: - NEWS - VERSION urls: - - url: "https://github.com/openpmix/openpmix/releases/download/v${V_PKG}/$P-${V_PKG}.tar.gz" + - 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 @@ -31,18 +39,94 @@ pmix: 2.2.5;3.2.3: config: relstage: unstable - 4.1.2: + 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: unstable + 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/MPI/arpack-ng/build b/MPI/arpack-ng/build new file mode 100755 index 0000000..6e021f3 --- /dev/null +++ b/MPI/arpack-ng/build @@ -0,0 +1,2 @@ +#!/usr/bin/env modbuild + diff --git a/MPI/arpack-ng/files/config.yaml b/MPI/arpack-ng/files/config.yaml new file mode 100644 index 0000000..3c44850 --- /dev/null +++ b/MPI/arpack-ng/files/config.yaml @@ -0,0 +1,37 @@ +--- +# yamllint disable rule:line-length +format: 1 +arpack-ng: + defaults: + group: MPI + overlay: base + relstage: stable + systems: [.*] + docfiles: + - Copyright.txt + - LICENSE + - README + - RELEASE_NOTES + urls: + - url: https://github.com/opencollab/$P/archive/refs/tags/${V_PKG}.tar.gz + name: $P-${V_PKG}.tar.gz + + shasums: + arpack-ng-3.9.0.tar.gz: 24f2a2b259992d3c797d80f626878aa8e2ed5009d549dad57854bbcfb95e1ed0 + + versions: + 3.9.0: + variants: + - group_deps: + compiler: + intel: [22.2] + mpi: + impi: [22.2] + configure_args: + - -DCMAKE_BUILD_TYPE:STRING=Release + - -DMPI="ON" + - -DICB="ON" + - -DBUILD_SHARED_LIBS="ON" + - -DCMAKE_POSITION_INDEPENDENT_CODE="ON" + build_requires: [cmake/3.25.2] + diff --git a/MPI/arpack-ng/modulefile b/MPI/arpack-ng/modulefile new file mode 100644 index 0000000..e802488 --- /dev/null +++ b/MPI/arpack-ng/modulefile @@ -0,0 +1,17 @@ +#%Module1.0 + +module-whatis "collection of Fortran77 subroutines designed to solve large scale eigenvalue problems" +module-url "https://github.com/opencollab/arpack-ng/tree/master" +module-license "BSD Software License" +module-maintainer "Elsa Germann " + +module-help " +This project started as a joint project between Debian, Octave and Scilab +in order to provide a common and maintained version of arpack. This is now +a community project maintained by a few volunteers. Indeed, no single release +has been published by Rice university for the last few years and since many +software (Octave, Scilab, R, Matlab...) forked it and implemented their own +modifications, arpack-ng aims to tackle this by providing a common repository, +maintained versions with a testsuite. arpack-ng is replacing arpack almost +everywhere. +" 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/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 index ed6d400..c351c87 100644 --- a/MPI/parmetis/files/config.yaml +++ b/MPI/parmetis/files/config.yaml @@ -1,29 +1,27 @@ -parmetis/3.2.0 deprecated gcc/{4.7.4,4.8.3,4.8.4,4.9.2} openmpi/{1.6.5,1.8.2,1.8.4} +--- +# 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 -parmetis/3.2.0 deprecated gcc/{4.8.5,5.3.0,6.1.0,6.2.0} openmpi/1.10.2 + shasums: + - parmetis-4.0.3.tar.gz: f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f -parmetis/3.2.0 deprecated gcc/6.2.0 openmpi/{1.10.4,2.0.1} + 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] -parmetis/3.2.0 deprecated gcc/7.3.0 openmpi/3.0.1 - -parmetis/3.2.0 deprecated intel/15.3 openmpi/1.8.4 - -parmetis/4.0.3 deprecated gcc/4.8.2 openmpi/1.6.5 b:cmake/3.4.1 -parmetis/4.0.3 deprecated gcc/{4.8.5,4.9.4,5.3.0,5.4.0,6.1.0,6.2.0} openmpi/1.10.2 b:cmake/3.4.1 - -parmetis/4.0.3 deprecated gcc/{4.8.5,4.9.4,5.4.0,6.2.0} openmpi/1.10.4 b:cmake/3.6.3 - -parmetis/4.0.3 deprecated gcc/6.2.0 openmpi/2.0.1 b:cmake/3.6.3 - -parmetis/4.0.3 deprecated gcc/7.3.0 openmpi/{1.10.7,2.1.2,3.0.0,3.0.1,3.1.2,3.1.3} b:cmake/3.6.3 -parmetis/4.0.3 deprecated gcc/7.4.0 openmpi/3.1.4 b:cmake/3.9.6 - -parmetis/4.0.3 deprecated intel/17.4 openmpi/{1.10.7,2.1.2,3.0.0} b:cmake/3.6.3 - -parmetis/4.0.3 stable gcc/7.3.0 mpich/3.3 b:cmake/3.9.6 - -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.6 - -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 bace901..6940835 100755 --- a/Programming/Python/build +++ b/Programming/Python/build @@ -1,19 +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::compile_in_sourcetree - pbuild::pre_configure() { local -a cflags=() local -a ldflags=() @@ -74,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" @@ -95,8 +81,8 @@ pbuild::post_install() { 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 + #std::info "Building ansible\n" + #pip${V_MAJOR} install ansible ansible-core==2.15.4 } diff --git a/Programming/Python/build-xml b/Programming/Python/build-legacy similarity index 68% rename from Programming/Python/build-xml rename to Programming/Python/build-legacy index fcd556e..bace901 100755 --- a/Programming/Python/build-xml +++ b/Programming/Python/build-legacy @@ -1,5 +1,19 @@ #!/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=() @@ -60,7 +74,7 @@ pbuild::post_install() { std::info "Building scipy\n" pip${V_MAJOR} install scipy - std::info "Building matplotlib\n" + std::info "Building matplotlub\n" pip${V_MAJOR} install matplotlib std::info "Building ipython\n" @@ -78,11 +92,11 @@ pbuild::post_install() { 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 virtualenv - #std::info "Building ansible\n" - #pip${V_MAJOR} install ansible ansible-core==2.15.4 + 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 index 4041769..37ec1dd 100644 --- a/Programming/Python/files/config.yaml +++ b/Programming/Python/files/config.yaml @@ -8,34 +8,37 @@ Python: - url: https://www.python.org/ftp/python/${V_PKG}/$P-${V_PKG}.tgz shasums: - Python-2.7.12.tgz: 3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6 - Python-2.7.14.tgz: 304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8 - Python-2.7.16.tgz: 01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5 - Python-2.7.17.tgz: f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde - Python-2.7.18.tgz: da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814 - Python-3.6.11.tgz: 96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c - Python-3.6.3.tgz: ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91 - Python-3.7.3.tgz: d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff - Python-3.7.4.tgz: d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3 - Python-3.7.8.tgz: 0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0 - Python-3.8.12.tgz: 316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a - Python-3.8.4.tgz: 32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18 - Python-3.8.8.tgz: 76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7 - Python-3.9.10.tgz: 1aa9c0702edbae8f6a2c95f70a49da8420aaa76b7889d3419c186bfc8c0e571e - Python-3.9.17.tgz: 8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014 + 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.9.18-1: + 3.13.2: config: - relstage: unstable - build_requires: [openssl/1.1.1w, TclTk/8.6.9, xz/5.2.4] - 3.9.18: + 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: - relstage: unstable - build_requires: [openssl/1.1.1w, TclTk/8.6.9, xz/5.2.4] + runtime_deps: [openssl/3.4.1, TclTk/8.6.16, xz/5.8.0] 3.9.17: config: - relstage: unstable + relstage: deprecated build_requires: [openssl/1.1.1v, TclTk/8.6.9, xz/5.2.4] 3.9.10: 3.8.12: 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/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/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/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/build-xml b/System/patchelf/build-xml deleted file mode 100755 index bd8e687..0000000 --- a/System/patchelf/build-xml +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::post_prep() { - cd "${SRC_DIR}" - ./bootstrap.sh -} diff --git a/System/patchelf/files/config.yaml b/System/patchelf/files/config.yaml index 8a4dab5..523990d 100644 --- a/System/patchelf/files/config.yaml +++ b/System/patchelf/files/config.yaml @@ -11,12 +11,12 @@ patchelf: 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: 1b7eca84f6fe2d6f6d4469ca1ccdf35dc920d2052ba94b7daeba6c8cb41fdaff20b1e5bac7c8a7650ff12bf4156da87f84d32e75b09958636dc992a1b7b1a59d + 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: - relstage: unstable 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 c7ad54d..3b872ee 100644 --- a/Tools/ANSYS/files/variants.overlay_merlin +++ b/Tools/ANSYS/files/variants.overlay_merlin @@ -3,5 +3,5 @@ ANSYS/2020R2 stable ANSYS/2021R1 stable ANSYS/2021R2 stable ANSYS/2022R1 stable -ANSYS/2022R2 unstable -ANSYS/2023R2 unstable +ANSYS/2022R2 stable +ANSYS/2023R2 stable 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 7df942a..1ab8cc7 100644 --- a/Tools/datacatalog/README.md +++ b/Tools/datacatalog/README.md @@ -6,7 +6,7 @@ This module provides tools to interface with the Data Catalog (discovery.psi.ch) ## Version Numbers -Prior to version 2, each command had it's own version. The pmodule version +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 @@ -42,7 +42,6 @@ fixed with a manual wrapper script which produces an error on RHEL 8. # TODO -- [ ] The post_prep section of the build script should be removed following - fixing [#55](https://github.com/paulscherrerinstitute/scicat-cli/issues/55) -- [ ] SciCat should be downloaded and installed in the build script +- [ ] 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 f039f9e..d3a7ddb 100755 --- a/Tools/datacatalog/build +++ b/Tools/datacatalog/build @@ -1,17 +1,7 @@ #!/usr/bin/env modbuild pbuild::add_to_group 'Tools' -pbuild::set_download_url https://github.com/paulscherrerinstitute/scicat-cli/releases/download/v${V_PKG}/scicat-cli_.${V_PKG}_Linux_x86_64.tar.gz - -pbuild::post_prep() { - # PModules 1.0.0 fails on tar bundles without top-level directories. This - # tries to work around this. It could be removed if the cli release process - # changes (https://github.com/paulscherrerinstitute/scicat-cli/issues/55) - if [[ ! -f "${SRC_DIR}/datasetIngestor" ]]; then - local file="$PMODULES_DISTFILESDIR/scicat-cli_.${V_PKG}_Linux_x86_64.tar.gz" - tar --directory="${SRC_DIR}" -xv --strip-components 0 -f "${file}" - fi -} +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() { : diff --git a/Tools/datacatalog/files/variants.Linux b/Tools/datacatalog/files/variants.Linux index 4b06b63..36cd865 100644 --- a/Tools/datacatalog/files/variants.Linux +++ b/Tools/datacatalog/files/variants.Linux @@ -7,3 +7,4 @@ 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/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 " +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/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: +