Merge branch 'master' into '301-git-build-modules-for-newer-version'

# Conflicts:
#   Programming/perl/files/config.yaml
This commit is contained in:
2025-05-23 15:23:47 +02:00
89 changed files with 1468 additions and 434 deletions

View File

@@ -1,9 +1,6 @@
#!/usr/bin/env modbuild
pbuild::pre_configure() {
pbuild::add_configure_args "--enable-shared"
pbuild::add_configure_args "--enable-static"
if (( V_MAJOR < 5 )); then
pbuild::add_configure_args "--enable-mpi-cxx"
pbuild::add_configure_args "--enable-mpi-cxx-seek"
@@ -27,12 +24,17 @@ pbuild::pre_configure() {
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
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
@@ -77,7 +79,9 @@ 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 || \
@@ -118,7 +122,14 @@ pbuild::post_install_no_slurm() {
pbuild::post_install() {
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
local fname=''

View File

@@ -8,7 +8,6 @@ openmpi:
relstage: stable
configure_args:
- --enable-shared
- --enable-static
docfiles: [AUTHORS, LICENSE, NEWS, README]
urls:
- url: https://download.open-mpi.org/release/open-mpi/v${V_MAJOR}.${V_MINOR}/openmpi-${V_PKG}.tar.bz2
@@ -58,22 +57,46 @@ openmpi:
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: unstable
relstage: stable
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7]
use_overlays: [PSI, Alps]
group_deps:
compiler: {gcc: [12.3.0], intelcc: [22.2]}
build_requires: [pmix/5.0.3, hwloc/2.11.1, libfabric/1.15.2.0, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0]
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+:
- --enable-mpi1-compatibility
- --with-cxi
- --with-lustre
- --with-slingshot
use_flags: [merlin7, slurm]
4.1.6:
config:
@@ -82,7 +105,7 @@ openmpi:
- systems: [merlin-.*]
suffix: _slurm
use_flags: [merlin6, gpfs]
relstage: unstable
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]}
@@ -98,6 +121,7 @@ openmpi:
- LDFLAGS=-g
- --with-gpfs=/usr/lpp/mmfs
- --with-pmi=/usr
- --enable-static
- systems: [ra-.*]
suffix: _ra
@@ -109,16 +133,18 @@ openmpi:
configure_args+:
- --with-gpfs=/usr/lpp/mmfs
- --with-pmi=/usr
- --enable-static
- systems: [.*.merlin7.psi.ch]
relstage: unstable
relstage: stable
overlay: Alps
group_deps:
compiler: {gcc: [12.3.0], intelcc: [22.2]}
build_requires: [pmix/4.2.9, hwloc/2.11.1, libfabric/1.15.2.0, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0]
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]

View File

@@ -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'
}

34
EM/DeepEMhancer/build Executable file
View File

@@ -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(){
:
}

View File

@@ -0,0 +1,7 @@
channels:
- rsanchez1369
- anaconda
- conda-forge
dependencies:
- python=3.10
- deepEMhancer

View File

@@ -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

View File

@@ -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 <greta.assmann@psi.ch>"
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"
}
}

10
EM/EMAN/README.md Normal file
View File

@@ -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

View File

@@ -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
}

5
EM/EMAN/environment.yaml Normal file
View File

@@ -0,0 +1,5 @@
channels:
- cryoem
- conda-forge
dependencies:
- eman-dev

13
EM/EMAN/files/config.yaml Normal file
View File

@@ -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

View File

@@ -1,2 +0,0 @@
EMAN/2.99.47 unstable cuda/11.2.2
EMAN/2.2 stable

View File

@@ -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 <greta.assmann@psi.ch>"
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 <elsa.germann@psi.ch>"
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), 9835. 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), 28390.
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
"

View File

@@ -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.

View File

@@ -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"

15
EM/IMOD/files/config.yaml Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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 <spencer.bliven@psi.ch> / Dmitry Ozerov <dmitry.ozerov@psi.ch>"
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"

View File

@@ -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)

View File

@@ -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
}

View File

@@ -1,8 +0,0 @@
overlay: base
relstage: stable
group: EM
shasums:
PEET/1.15.1a: de4e9104f90b9379502a34b58be33eafd5514d554002a94efe2adba6f44785e6
PEET/1.15.1a:
- relstage: unstable

16
EM/PEET/files/config.yaml Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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 <spencer.bliven@psi.ch>"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "
PEET (Particle Estimation for Electron Tomography) is an open-source package

View File

@@ -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 <VERSION>` 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.

View File

@@ -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() {
:
}

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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 <spencer.bliven@psi.ch>"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
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" {

12
EM/napari/README.md Normal file
View File

@@ -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.

27
EM/napari/build Executable file
View File

@@ -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(){
:
}

View File

@@ -0,0 +1,11 @@
channels:
- conda-forge
- anaconda
dependencies:
- python=3.10
- pyqt
- napari=0.4.17
- pip
- pip:
- napari-boxmanager

View File

@@ -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

34
EM/napari/modulefile Normal file
View File

@@ -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 <greta.assmann@psi.ch>"
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"
}
}

View File

View File

@@ -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: <https://docs.nvidia.com/grace-perf-tuning-guide/compilers.html>

View File

@@ -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

162
EM/relion/files/config.yaml Normal file
View File

@@ -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"

View File

@@ -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

View File

@@ -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/

34
EM/topaz/README.md Normal file
View File

@@ -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
```

27
EM/topaz/build Executable file
View File

@@ -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(){
:
}

View File

@@ -0,0 +1,8 @@
channels:
- tbepler
- pytorch
dependencies:
- python=3.6
- cudatoolkit
- topaz
- pytorch

View File

@@ -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

34
EM/topaz/modulefile Normal file
View File

@@ -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 <greta.assmann@psi.ch>"
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"
}
}

View File

@@ -22,7 +22,7 @@ libevent:
overlay: Alps
use_overlays: [PSI]
build_requires: []
relstage: unstable
relstage: stable
- systems: [rhel.*]
build_requires: [openssl/1.1.1k]
2.1.8:

2
Libraries/libpsl/build Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env modbuild

View File

@@ -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:

View File

@@ -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 <achim.gsell@psi.ch>"
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.
"

View File

@@ -6,7 +6,6 @@ pmix:
compile_in_sourcetree: true
configure_args:
- --enable-shared
- --enable-static
docfiles:
- AUTHORS
- README.md
@@ -30,6 +29,8 @@ pmix:
1.2.5:
config:
relstage: removed
configure_args+:
- --enable-static
docfiles:
- README
- LICENSE
@@ -38,6 +39,8 @@ pmix:
2.2.5;3.2.3:
config:
relstage: unstable
configure_args+:
- --enable-static
runtime_deps: [libevent/2.1.12]
build_requires: [gcc/12.3.0, hwloc/2.11.1]
variants:
@@ -48,6 +51,8 @@ pmix:
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:
@@ -57,21 +62,29 @@ pmix:
4.1.2:
config:
relstage: stable
configure_args+:
- --enable-static
runtime_deps: [libevent/2.1.12]
build_requires: [hwloc/2.7.1]
4.2.3:
config:
relstage: stable
configure_args+:
- --enable-static
runtime_deps: [libevent/2.1.12]
build_requires: [hwloc/2.9.1]
4.2.4:
config:
relstage: stable
configure_args+:
- --enable-static
runtime_deps: [libevent/2.1.12]
build_requires: [gcc/10.4.0, hwloc/2.9.1]
4.2.9:
config:
relstage: unstable
relstage: stable
configure_args+:
- --enable-static
runtime_deps: [libevent/2.1.12]
build_requires: [gcc/12.3.0, hwloc/2.11.1]
variants:
@@ -80,7 +93,9 @@ pmix:
use_overlays: [PSI]
5.0.3:
config:
relstage: unstable
relstage: stable
configure_args+:
- --enable-static=no
runtime_deps: [libevent/2.1.12]
build_requires: [gcc/12.3.0, hwloc/2.11.1]
variants:
@@ -95,3 +110,23 @@ pmix:
# - --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.*]

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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:

View File

@@ -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}"
}

View File

@@ -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" \

View File

@@ -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}"
}

View File

@@ -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:

View File

@@ -1 +0,0 @@
TclTk/8.6.9 stable

View File

@@ -1 +0,0 @@
TclTk/8.6.9 stable

View File

@@ -12,4 +12,4 @@ anaconda:
- url: https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-x86_64.sh
name: miniconda-2024.08.sh
unpacker: none
relstage: unstable
relstage: stable

View File

@@ -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
}

View File

@@ -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

View File

@@ -13,4 +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 unstable
cuda/12.2.0 stable

View File

@@ -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"

View File

@@ -86,6 +86,7 @@ gcc:
systems: [rhel.*]
- overlay: PSI
systems: [login.*.merlin7.psi.ch, cn.*.merlin7.psi.ch, gpu.*.merlin7.psi.ch]
modulefile: modulefile-alps
- overlay: base
systems: [rhel.*]
@@ -168,6 +169,16 @@ gcc:
- 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

View File

@@ -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 <achim.gsell@psi.ch>"
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

View File

@@ -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

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env modbuild
pbuild::post_prep() {
cd "${SRC_DIR}"
./bootstrap.sh
}

View File

@@ -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]

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'Tools'
pbuild::prep() {
:
}

View File

@@ -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]

View File

@@ -1 +1,2 @@
ANSYS/2022R2 stable
ANSYS/2024R1 stable

View File

@@ -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

12
Tools/VSCode/build Executable file
View File

@@ -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:

View File

@@ -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

16
Tools/VSCode/modulefile Normal file
View File

@@ -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 <achim.gsell@psi.ch>"
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
"

View File

@@ -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]

15
Tools/curl/modulefile Normal file
View File

@@ -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 <achim.gsell@psi.ch>"
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.
"

6
Tools/fpart/build Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env modbuild
# we need to generate the configure file
pbuild::post_prep() {
autoreconf -i
}

View File

@@ -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:

12
Tools/fpart/modulefile Normal file
View File

@@ -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 <hans-nikolai.viessmann@psi.ch"
module-help "
Fpart is a Filesystem partitioner. It helps you sort file trees and pack them into bags (called partitions). It is developed in C and available under the BSD license.
Fpsync, a powerful file-migration tool is also provided. See https://www.fpart.org/ for more details and examples.
"

View File

@@ -1,16 +1,5 @@
#!/usr/bin/env modbuild
pbuild::set_download_url \
"https://sourceforge.net/projects/gnuplot/files/$P/$V/$P-$V.tar.gz"
pbuild::set_sha256sum 'gnuplot-5.2.4.tar.gz:1515f000bd373aaa53b16183f274189d4f5e0ae47d22f434857933d16a4770cb'
pbuild::install_docfiles 'Copyright' 'NEWS' 'README'
pbuild::add_to_group 'Tools'
pbuild::pre_configure() {
pbuild::add_configure_args '--with-latex=no'
pbuild::add_configure_args '--with-qt=no'
}
# Local Variables:
# mode: sh
# sh-basic-offset: 8

View File

@@ -10,6 +10,8 @@ gnuplot:
urls:
- url: https://sourceforge.net/projects/gnuplot/files/$P/$V/$P-${V_PKG}.tar.gz
shasums:
gnuplot-6.0.1.tar.gz: e85a660c1a2a1808ff24f7e69981ffcbac66a45c9dcf711b65610b26ea71379a
gnuplot-6.0.0.tar.gz: 635a28f0993f6ab0d1179e072ad39b8139d07f51237f841d93c6c2ff4b1758ec
gnuplot-5.4.10.tar.gz: 975d8c1cc2c41c7cedc4e323aff035d977feb9a97f0296dd2a8a66d197a5b27c
gnuplot-5.4.9.tar.gz: a328a021f53dc05459be6066020e9a71e8eab6255d3381e22696120d465c6a97
gnuplot-5.4.8.tar.gz: 931279c7caad1aff7d46cb4766f1ff41c26d9be9daf0bcf0c79deeee3d91f5cf
@@ -26,18 +28,16 @@ gnuplot:
gnuplot-5.0.0.tar.gz: 417d4bc5bc914a60409bb75cf18dd14f48b07f53c6ad3c4a4d3cd9a8d7370faf
gnuplot-4.6.3.tar.gz: df5ffafa25fb32b3ecc0206a520f6bca8680e6dcc961efd30df34c0a1b7ea7f5
versions:
5.4.{0,1,2,3,4,5,8,9};5.2.{0,4,6,7,8};5.0.0;4.6.3:
5.4.10:
6.0.1;6.0.0:
config:
relstage: stable
6.0.0:
config:
relstage: unstable
systems: [rhel*]
systems: [rhel*, sles*]
configure_args: ['--with-latex=no', '--with-qt=no']
6.0.1:
5.4.{0,1,2,3,4,5,8,9,10}:
config:
relstage: unstable
systems: [rhel*]
configure_args: ['--with-latex=no', '--with-qt=no']
relstage: stable
systems: [rhel*, sles*]
5.2.{0,4,6,7,8};5.0.0:
config:
relstage: deprecated

View File

@@ -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
}

View File

@@ -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

View File

@@ -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

View File

@@ -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: