commit:     f46404afdff1c3cc2457b314e39ee2700434d789
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sat Jul 31 06:45:53 2021 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Sat Jul 31 06:46:20 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f46404af

sys-cluster/fti: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-cluster/fti/Manifest                           |  1 +
 .../fti/files/fti-add-spinx-ext-autodoc.patch      | 20 +++++
 sys-cluster/fti/files/fti-sionlib-includedir.patch | 11 +++
 sys-cluster/fti/fti-1.6.ebuild                     | 85 ++++++++++++++++++++++
 sys-cluster/fti/metadata.xml                       | 25 +++++++
 5 files changed, 142 insertions(+)

diff --git a/sys-cluster/fti/Manifest b/sys-cluster/fti/Manifest
new file mode 100644
index 000000000..ecb4bf5d4
--- /dev/null
+++ b/sys-cluster/fti/Manifest
@@ -0,0 +1 @@
+DIST fti-1.6.tar.gz 1752536 BLAKE2B 
5e4757700a4911cd82cbd0a7426e39ef081c38809e39d4564a8aeea24e370ed9a87654c664ee14afaa95a394275db817271cf393d3b7febce9f578d5874e520e
 SHA512 
068e43d6c433c57c88acd8b39a0f05a012e87084fa8e0a912216f8e9725310bfab46ba8a23b02560287e7408ccb1ed62ead61768deb9135d9eb1b3fd19bed290

diff --git a/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch 
b/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch
new file mode 100644
index 000000000..cc34e3719
--- /dev/null
+++ b/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch
@@ -0,0 +1,20 @@
+From 65f203e50cd08489d2c49ec8a645d82f104c6b29 Mon Sep 17 00:00:00 2001
+From: Alessandro Barbieri <lssndrbarbi...@gmail.com>
+Date: Sat, 31 Jul 2021 08:11:00 +0200
+Subject: [PATCH] add sphinx.ext.autodoc to doc extensions
+
+---
+ docs/source/conf.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/docs/source/conf.py
++++ b/docs/source/conf.py
+@@ -31,7 +31,7 @@
+ # Add any Sphinx extension module names here, as strings. They can be
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+ # ones.
+-extensions = ['breathe', 'sphinx.ext.autosectionlabel']
++extensions = ['breathe', 'sphinx.ext.autosectionlabel', 'sphinx.ext.autodoc']
+ 
+ # Add any paths that contain templates here, relative to this directory.
+ templates_path = ['_templates']

diff --git a/sys-cluster/fti/files/fti-sionlib-includedir.patch 
b/sys-cluster/fti/files/fti-sionlib-includedir.patch
new file mode 100644
index 000000000..dab1df493
--- /dev/null
+++ b/sys-cluster/fti/files/fti-sionlib-includedir.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -126,7 +126,7 @@
+ # Library: SIONLib (Optional)
+ if(ENABLE_SIONLIB)
+     set(SIONLIBBASE "" CACHE FILEPATH "base path to SIONlib installation")
+-    set(SIONLIB_INCLUDE_DIR "${SIONLIBBASE}/include/")
++    set(SIONLIB_INCLUDE_DIR "/usr/include/sionlib")
+ 
+     list(APPEND INC_PRIV ${SIONLIB_INCLUDE_DIR})
+     find_library(SIONLIB_MPI NAMES "sionmpi_64" 

diff --git a/sys-cluster/fti/fti-1.6.ebuild b/sys-cluster/fti/fti-1.6.ebuild
new file mode 100644
index 000000000..fa294090d
--- /dev/null
+++ b/sys-cluster/fti/fti-1.6.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+DOCS_BUILDER="sphinx"
+DOCS_DEPEND="
+       dev-python/breathe
+       dev-python/sphinx_rtd_theme
+"
+DOCS_DIR="${S}/docs/source"
+FORTRAN_NEEDED="fortran"
+PYTHON_COMPAT=( python3_{8..10} pypy3 )
+
+inherit cmake python-any-r1 docs fortran-2
+
+DESCRIPTION="Fault Tolerance Interface"
+HOMEPAGE="https://github.com/leobago/fti";
+SRC_URI="https://github.com/leobago/fti/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc examples fi-io hdf5 lustre fortran openssl sionlib test tutorial"
+
+RDEPEND="
+       sys-libs/zlib
+       virtual/mpi
+
+       hdf5? ( sci-libs/hdf5[mpi] )
+       lustre? ( sys-cluster/lustre )
+       openssl? ( dev-libs/openssl )
+       sionlib? ( sys-cluster/sionlib )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-doc/doxygen )"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-sionlib-includedir.patch"
+       "${FILESDIR}/${PN}-add-spinx-ext-autodoc.patch"
+)
+RESTRICT="!test? ( test )"
+
+pkg_setup() {
+       fortran-2_pkg_setup
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DSIONLIBBASE="${EPREFIX}/usr/$(get_libdir)"
+               -DENABLE_COVERAGE=OFF
+               -DENABLE_IME_NATIVE=OFF
+
+               -DENABLE_DOCU=$(usex doc)
+               -DENABLE_EXAMPLES=$(usex examples)
+               -DENABLE_FI_IO=$(usex fi-io)
+               -DENABLE_FORTRAN=$(usex fortran)
+               -DENABLE_HDF5=$(usex hdf5)
+               -DENABLE_LUSTRE=$(usex lustre)
+               -DENABLE_OPENSSL=$(usex openssl)
+               -DENABLE_SIONLIB=$(usex sionlib)
+               -DENABLE_TESTS=$(usex test)
+               -DENABLE_TUTORIAL=$(usex tutorial)
+       )
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+       docs_compile
+}
+
+src_install() {
+       cmake_src_install
+       einstalldocs
+       if use examples; then
+               mkdir -p "${ED}/usr/libexec/${PN}" || die
+               mv "${ED}/usr/bin/examples" "${ED}/usr/libexec/${PN}/examples" 
|| die
+       fi
+       if use tutorial; then
+               mkdir -p "${ED}/usr/libexec/${PN}" || die
+               mv "${ED}/usr/bin/tutorial" "${ED}/usr/libexec/${PN}/tutorial" 
|| die
+       fi
+       find "${ED}" -name '*.a' -delete || die
+}

diff --git a/sys-cluster/fti/metadata.xml b/sys-cluster/fti/metadata.xml
new file mode 100644
index 000000000..1214879fe
--- /dev/null
+++ b/sys-cluster/fti/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>lssndrbarbi...@gmail.com</email>
+    <name>Alessandro Barbieri</name>
+  </maintainer>
+  <upstream>
+    <bugs-to>https://github.com/leobago/fti/issues</bugs-to>
+    <remote-id type="github">leobago/fti</remote-id>
+  </upstream>
+  <longdescription lang="en">
+FTI stands for Fault Tolerance Interface and is a library that aims to give 
computational scientists the means to perform fast and efficient multilevel 
checkpointing in large scale supercomputers. FTI leverages local storage plus 
data replication and erasure codes to provide several levels of reliability and 
performance. FTI is application-level checkpointing and allows users to select 
which datasets needs to be protected, in order to improve efficiency and avoid 
wasting space, time and energy. In addition, it offers a direct data interface 
so that users do not need to deal with files and/or directory names. All 
metadata is managed by FTI in a transparent fashion for the user. If desired, 
users can dedicate one process per node to overlap fault tolerance workload and 
scientific computation, so that post-checkpoint tasks are executed 
asynchronously.
+  </longdescription>
+  <use>
+    <flag name="openssl">To use the <pkg>dev-libs/openssl</pkg> MD5 rather 
than the built-in</flag>
+    <flag name="fortran">Enables the build of a Fortran wrapper</flag>
+    <flag name="lustre">Enables Lustre Support</flag>
+    <flag name="sionlib">Enables the parallel I/O 
<pkg>sys-cluster/sionlib</pkg> for FTI</flag>
+    <flag name="hdf5">Enables the HDF5 checkpoints for FTI</flag>
+    <flag name="tutorial">Enables the generation of tutorial files</flag>
+    <flag name="fi-io">Enables the I/O failure injection mechanism</flag>
+    <flag name="tests">Enables the generation of tests</flag>
+  </use>
+</pkgmetadata>

Reply via email to