Skip to content

Commit

Permalink
Merge pull request #22141 from asp8200/20250109134516_new_pr_snakemak…
Browse files Browse the repository at this point in the history
…e8270

{tools}[foss/2024a] snakemake v8.27.0
  • Loading branch information
ocaisa authored Jan 13, 2025
2 parents 09ef542 + f99725b commit b8c18cd
Show file tree
Hide file tree
Showing 9 changed files with 492 additions and 0 deletions.
62 changes: 62 additions & 0 deletions easybuild/easyconfigs/c/Cbc/Cbc-2.10.12-foss-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
easyblock = 'ConfigureMake'

name = 'Cbc'
version = '2.10.12'

homepage = 'https://github.com/coin-or/Cbc'
description = """Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming
solver written in C++. It can be used as a callable library or using a
stand-alone executable."""

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['https://github.com/coin-or/%(name)s/archive/refs/tags/releases']
sources = ['%(version)s.tar.gz']
checksums = ['9ed71e4b61668462fc3794c102e26b4bb01a047efbbbcbd69ae7bde1f04f46a8']

builddependencies = [
('Autotools', '20231222'),
('Doxygen', '1.11.0'),
('pkgconf', '2.2.0'),
]
dependencies = [
('METIS', '5.1.0'),
('MUMPS', '5.7.2', '-metis'),
('CoinUtils', '2.11.12'),
('Osi', '0.108.11'),
('Clp', '1.17.10'),
('Cgl', '0.60.8'),
('bzip2', '1.0.8'),
('zlib', '1.3.1'),
]

# Use BLAS/LAPACK from toolchain
configopts = '--with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK" '
# Use METIS AND MUMPS from EB
configopts += '--with-metis-lib="-lmetis" '
configopts += '--with-mumps-lib="-lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord" '
# Disable GLPK, dependencies have to be built with it as well
configopts += '--without-glpk '
# Use CoinUtils from EB
configopts += '--with-coinutils-lib="-lCoinUtils" '
configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '
# Use Clp from EB
configopts += '--with-clp-lib="-lOsiClp -lClpSolver -lClp" '
configopts += '--with-clp-datadir=$EBROOTCLP/share/coin/Data '
# Use Osi from EB (also needs links to Clp due to OsiClpSolver)
configopts += '--with-osi-lib="-lOsiClp -lClpSolver -lClp -lOsi" '
configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '
# Use Cgl from EB
configopts += '--with-cgl-lib="-lCgl" '
configopts += '--with-cgl-datadir=$EBROOTCGL/share/coin/Data '

sanity_check_paths = {
'files': ['bin/cbc'] + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['Cbc', 'CbcSolver', 'OsiCbc']],
'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
}

# other coin-or projects expect <header.hpp> instead of <coin/header.hpp>
modextrapaths = {'CPATH': 'include/coin'}

moduleclass = 'math'
50 changes: 50 additions & 0 deletions easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
easyblock = 'ConfigureMake'

name = 'Cgl'
version = '0.60.8'

homepage = 'https://github.com/coin-or/Cgl'
description = """The COIN-OR Cut Generation Library (Cgl) is a collection of cut generators that
can be used with other COIN-OR packages that make use of cuts, such as, among
others, the linear solver Clp or the mixed integer linear programming solvers
Cbc or BCP. Cgl uses the abstract class OsiSolverInterface (see Osi) to use or
communicate with a solver. It does not directly call a solver."""

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['https://github.com/coin-or/%(name)s/archive/refs/tags/releases/']
sources = ['%(version)s.tar.gz']
checksums = ['1482ba38afb783d124df8d5392337f79fdd507716e9f1fb6b98fc090acd1ad96']

builddependencies = [
('Autotools', '20231222'),
('Doxygen', '1.11.0'),
('pkgconf', '2.2.0'),
]
dependencies = [
('CoinUtils', '2.11.12'),
('Osi', '0.108.11'),
('Clp', '1.17.10'),
]

# Use CoinUtils from EB
configopts = '--with-coinutils-lib="-lCoinUtils" '
configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '
# Use Clp from EB
configopts += '--with-clp-lib="-lOsiClp -lClpSolver -lClp" '
configopts += '--with-clp-datadir=$EBROOTCLP/share/coin/Data '
# Use Osi from EB (also needs links to Clp due to OsiClpSolver)
configopts += '--with-osi-lib="-lOsiClp -lClpSolver -lClp -lOsi" '
configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '


sanity_check_paths = {
'files': ['lib/libCgl.%s' % SHLIB_EXT],
'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
}

# other coin-or projects expect <header.hpp> instead of <coin/header.hpp>
modextrapaths = {'CPATH': 'include/coin'}

moduleclass = 'math'
61 changes: 61 additions & 0 deletions easybuild/easyconfigs/c/Clp/Clp-1.17.10-foss-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
easyblock = 'ConfigureMake'

name = 'Clp'
version = '1.17.10'

homepage = 'https://github.com/coin-or/Clp'
description = """Clp (Coin-or linear programming) is an open-source linear programming solver.
It is primarily meant to be used as a callable library, but a basic,
stand-alone executable version is also available."""

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['https://github.com/coin-or/%(name)s/archive/refs/tags/releases/']
sources = ['%(version)s.tar.gz']
checksums = ['0d79ece896cdaa4a3855c37f1c28e6c26285f74d45f635046ca0b6d68a509885']

builddependencies = [
('Autotools', '20231222'),
('Doxygen', '1.11.0'),
('pkgconf', '2.2.0'),
]
dependencies = [
('METIS', '5.1.0'),
('MUMPS', '5.7.2', '-metis'),
('CoinUtils', '2.11.12'),
('Osi', '0.108.11'),
('bzip2', '1.0.8'),
('zlib', '1.3.1'),
]

# Use BLAS/LAPACK from toolchain
configopts = '--with-blas="$LIBBLAS" '
configopts += '--with-lapack="$LIBLAPACK" '

# Use METIS AND MUMPS from EB
# --with-metis-lib is ignored
configopts += '--with-metis-lib="-lmetis" '
configopts += '--with-mumps-lib="-lesmumps -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lmpi_mpifh '
configopts += '-lmetis -lscotch -lptscotch -lptscotcherr -lscotcherrexit -lscotcherr $LIBSCALAPACK" '

# Disable GLPK because Clp requires headers from its sources
configopts += '--without-glpk '

# Use CoinUtils from EB
configopts += '--with-coinutils-lib="-lCoinUtils" '
configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '

# Use Osi from EB
configopts += '--with-osi-lib="-lOsi" '
configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '

sanity_check_paths = {
'files': ['bin/clp'] + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['Clp', 'ClpSolver', 'OsiClp']],
'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
}

# other coin-or projects expect <header.hpp> instead of <coin/header.hpp>
modextrapaths = {'CPATH': 'include/coin'}

moduleclass = 'math'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.12-GCC-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
easyblock = 'ConfigureMake'

name = 'CoinUtils'
version = '2.11.12'

homepage = 'https://github.com/coin-or/CoinUtils'
description = """CoinUtils (Coin-OR Utilities) is an open-source collection of classes and
functions that are generally useful to more than one COIN-OR project."""

# NOTE: this esyconfig for CoinUtils provides a minimal build not using BLAS/LAPACK or MPI
toolchain = {'name': 'GCC', 'version': '13.3.0'}

source_urls = ['https://github.com/coin-or/%(name)s/archive/refs/tags/releases/']
sources = ['%(version)s.tar.gz']
checksums = ['eef1785d78639b228ae2de26b334129fe6a7d399c4ac6f8fc5bb9054ba00de64']

builddependencies = [
('Autotools', '20231222'),
('Doxygen', '1.11.0'),
('pkgconf', '2.2.0'),
]
dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.3.1'),
]

sanity_check_paths = {
'files': ['lib/libCoinUtils.%s' % SHLIB_EXT],
'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
}

# other coin-or projects expect <header.hpp> instead of <coin/header.hpp>
modextrapaths = {'CPATH': 'include/coin'}

moduleclass = 'math'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-foss-2024a-metis.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name = 'MUMPS'
version = '5.7.2'
versionsuffix = '-metis'

homepage = 'https://graal.ens-lyon.fr/MUMPS/'
description = "A parallel sparse direct solver"

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['http://mumps-solver.org/']
sources = ['%(name)s_%(version)s.tar.gz']
checksums = ['1362d377ce7422fc886c55212b4a4d2c381918b5ca4478f682a22d0627a8fbf8']

dependencies = [
('SCOTCH', '7.0.6'),
('METIS', '5.1.0'),
]

parallel = 1

# fix 'Type mismatch between actual argument' errors with GCC 10.x
prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && '

buildopts = 'all SONAME_VERSION="%(version)s"'

moduleclass = 'math'
47 changes: 47 additions & 0 deletions easybuild/easyconfigs/o/Osi/Osi-0.108.11-GCC-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
easyblock = 'ConfigureMake'

name = 'Osi'
version = '0.108.11'

homepage = 'https://github.com/coin-or/Osi'
description = """Osi (Open Solver Interface) provides an abstract base class to a generic linear
programming (LP) solver, along with derived classes for specific solvers. Many
applications may be able to use the Osi to insulate themselves from a specific
LP solver. That is, programs written to the OSI standard may be linked to any
solver with an OSI interface and should produce correct results. The OSI has
been significantly extended compared to its first incarnation. Currently, the
OSI supports linear programming solvers and has rudimentary support for integer
programming."""

toolchain = {'name': 'GCC', 'version': '13.3.0'}

source_urls = ['https://github.com/coin-or/%(name)s/archive/refs/tags/releases/']
sources = ['%(version)s.tar.gz']
checksums = ['1063b6a057e80222e2ede3ef0c73c0c54697e0fee1d913e2bef530310c13a670']

builddependencies = [
('Autotools', '20231222'),
('Doxygen', '1.11.0'),
('pkgconf', '2.2.0'),
]
dependencies = [
('CoinUtils', '2.11.12'),
('bzip2', '1.0.8'),
('zlib', '1.3.1'),
]

# Disable GLPK because Osi requires GLPK<=4.48
configopts = '--without-glpk '
# Use CoinUtils from EB
configopts += '--with-coinutils-lib="-lCoinUtils" --with-coinutils-incdir=$EBROOTCOINUTILS/include/coin '
configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data'

sanity_check_paths = {
'files': ['lib/libOsi.%s' % SHLIB_EXT, 'lib/libOsiCommonTests.%s' % SHLIB_EXT],
'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
}

# other coin-or projects expect <header.hpp> instead of <coin/header.hpp>
modextrapaths = {'CPATH': 'include/coin'}

moduleclass = 'math'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/p/PuLP/PuLP-2.8.0-foss-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Contribution by
# DeepThought, Flinders University
# R.QIAO <[email protected]>
# Updated: Petr Král (INUITS)

easyblock = 'PythonPackage'

name = 'PuLP'
version = '2.8.0'

homepage = 'https://github.com/coin-or/pulp'
description = """
PuLP is an LP modeler written in Python. PuLP can generate MPS or LP files and
call GLPK, COIN-OR CLP/CBC, CPLEX, GUROBI, MOSEK, XPRESS, CHOCO, MIPCL, SCIP to
solve linear problems.
"""

toolchain = {'name': 'foss', 'version': '2024a'}

sources = [SOURCE_TAR_GZ]
checksums = ['4903bf96110bbab8ed2c68533f90565ebb76aa367d9e4df38e51bf727927c125']

dependencies = [
('Python', '3.12.3'),
('GLPK', '5.0'),
('Cbc', '2.10.12'),
# Gurobi requires a seperate license
# ('Gurobi', '9.5.0'),
]

download_dep_fail = True
sanity_pip_check = True
use_pip = True

moduleclass = 'tools'
26 changes: 26 additions & 0 deletions easybuild/easyconfigs/s/SCOTCH/SCOTCH-7.0.6-gompi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name = 'SCOTCH'
version = '7.0.6'

homepage = 'https://www.labri.fr/perso/pelegrin/scotch/'
description = """Software package and libraries for sequential and parallel graph partitioning,
static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning."""

toolchain = {'name': 'gompi', 'version': '2024a'}
toolchainopts = {'pic': True}

source_urls = ['https://gitlab.inria.fr/%(namelower)s/%(namelower)s/-/archive/v%(version)s/']
sources = ['%(namelower)s-v%(version)s.tar.gz']
checksums = ['b44acd0d2f53de4b578fa3a88944cccc45c4d2961cd8cefa9b9a1d5431de8e2b']

builddependencies = [
('Bison', '3.8.2'),
('flex', '2.6.4'),
]

dependencies = [
('zlib', '1.3.1'),
]

threadedmpi = False

moduleclass = 'math'
Loading

0 comments on commit b8c18cd

Please sign in to comment.