sys-cluster/scr: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2021-08-02 01:57:35 +02:00
parent c2a771afa6
commit 89de1321c6
3 changed files with 133 additions and 0 deletions

1
sys-cluster/scr/Manifest Normal file
View File

@@ -0,0 +1 @@
DIST scr-3.0_pre1.tar.gz 1629041 BLAKE2B c7922e208964b8456c65393c0f9b17530b3eb66ceab38bc682b1fb78b29f77f2d3a6c51c9c8380720c88606a8da3b34f9a088ed80198f3c4f2bfe6906faac6ef SHA512 3bf290a41cb8abbd7e08ab02580f1e4dd73758946fe0ba7bd861a5099f8396e382dc8b80a0a33b0d45ee929efa069bd7a6381e9ca6f11d9049e113ac9aec6793

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>lssndrbarbieri@gmail.com</email>
<name>Alessandro Barbieri</name>
</maintainer>
<upstream>
<bugs-to>https://github.com/LLNL/scr/issues</bugs-to>
<remote-id type="github">LLNL/scr</remote-id>
</upstream>
<longdescription lang="en">
The Scalable Checkpoint / Restart (SCR) library enables MPI applications to utilize distributed storage on Linux clusters to attain high file I/O bandwidth for checkpointing, restarting, and output in large-scale jobs. With SCR, jobs run more efficiently, recompute less work upon a failure, and reduce load on critical shared resources such as the parallel file system.
</longdescription>
<use>
<flag name="fcntl">use fcntl as a file locking type</flag>
<flag name="flock">use flock as a file locking type</flag>
<flag name="fortran">Enables Fortran support</flag>
<flag name="mysql">Enable use of mysql for logging SCR activities</flag>
<flag name="pdsh">Enable use of pdsh for scalable restart and scavenge</flag>
<flag name="pmix">use pmix as resource manager</flag>
<flag name="slurm">use slurm as resource manager</flag>
<flag name="syslog">Whether to enable syslog logging</flag>
<flag name="txt-log">Whether to enable text file logging</flag>
<flag name="yogrt">Enable use of yogrt for time remaining in a job allocation</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,105 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
DOCS_BUILDER="sphinx"
DOCS_DIR="${S}/doc/rst"
FORTRAN_NEEDED="fortran"
MYPV="${PV/_pre/rc}"
PYTHON_COMPAT=( python3_{8..10} pypy3 )
inherit cmake python-single-r1 fortran-2 docs
DESCRIPTION="Scalable Checkpoint / Restart Library"
HOMEPAGE="
http://computing.llnl.gov/projects/scalable-checkpoint-restart-for-mpi
https://github.com/LLNL/scr
"
SRC_URI="https://github.com/LLNL/scr/archive/refs/tags/v${MYPV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc examples fcntl +flock +fortran mysql pdsh pmix slurm syslog txt-log +yogrt"
#cppr
RDEPEND="
${PYTHON_DEPS}
sys-cluster/AXL
sys-cluster/dtcmp
sys-cluster/er
sys-cluster/KVTree
sys-cluster/rankstr
sys-cluster/redset
sys-cluster/spath
sys-libs/zlib
virtual/mpi
mysql? ( dev-db/mysql-connector-c )
pdsh? ( app-shells/pdsh )
pmix? ( sys-cluster/pmix )
slurm? ( sys-cluster/slurm )
yogrt? ( sys-cluster/libyogrt[slurm?] )
"
DEPEND="${RDEPEND}"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
?? ( pmix slurm )
?? ( fcntl flock )
"
pkg_setup() {
fortran-2_pkg_setup
}
src_configure() {
local asyncapi="NONE" #INTEL_CPPR
local lock="NONE"
use fcntl && lock="FCNTL"
use flock && lock="FLOCK"
local log="0"
use syslog && log="1"
use txt-log && log="1"
local resman="NONE" #APRUN LSF
use pmix && resman="PMIX"
use slurm && resman="SLURM"
local mycmakeargs=(
-DBUILD_PDSH=OFF
-DENABLE_INTEL_CPPR=OFF
-DENABLE_ENABLE_CRAY_DW=OFF
-DENABLE_IBM_BBAPI=OF
-DSCR_ASYNC_API="${asyncapi}"
-DSCR_FILE_LOCK="${lock}"
-DSCR_LINK_STATIC=OFF
-DSCR_LOG_ENABLE="${log}"
-DSCR_RESOURCE_MANAGER="${resman}"
-DENABLE_EXAMPLES=$(usex examples)
-DENABLE_FORTRAN=$(usex fortran)
-DENABLE_PDSH=$(usex pdsh)
-DENABLE_TESTS=$(usex test)
-DENABLE_YOGRT=$(usex yogrt)
-DSCR_LOG_SYSLOG_ENABLE=$(usex syslog 0 1)
-DSCR_LOG_TXT_ENABLE=$(usex txt-log 0 1)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
docs_compile
}
src_install() {
cmake_src_install
einstalldocs
find "${ED}" -name '*.a' -delete || die
}