Gentoo Archives: gentoo-commits

From: Alessandro Barbieri <lssndrbarbieri@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: sys-cluster/fti/files/, sys-cluster/fti/
Date: Sat, 31 Jul 2021 06:46:27
Message-Id: 1627713980.f46404afdff1c3cc2457b314e39ee2700434d789.Alessandro-Barbieri@gentoo
1 commit: f46404afdff1c3cc2457b314e39ee2700434d789
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Sat Jul 31 06:45:53 2021 +0000
4 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
5 CommitDate: Sat Jul 31 06:46:20 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f46404af
7
8 sys-cluster/fti: initial import
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 sys-cluster/fti/Manifest | 1 +
13 .../fti/files/fti-add-spinx-ext-autodoc.patch | 20 +++++
14 sys-cluster/fti/files/fti-sionlib-includedir.patch | 11 +++
15 sys-cluster/fti/fti-1.6.ebuild | 85 ++++++++++++++++++++++
16 sys-cluster/fti/metadata.xml | 25 +++++++
17 5 files changed, 142 insertions(+)
18
19 diff --git a/sys-cluster/fti/Manifest b/sys-cluster/fti/Manifest
20 new file mode 100644
21 index 000000000..ecb4bf5d4
22 --- /dev/null
23 +++ b/sys-cluster/fti/Manifest
24 @@ -0,0 +1 @@
25 +DIST fti-1.6.tar.gz 1752536 BLAKE2B 5e4757700a4911cd82cbd0a7426e39ef081c38809e39d4564a8aeea24e370ed9a87654c664ee14afaa95a394275db817271cf393d3b7febce9f578d5874e520e SHA512 068e43d6c433c57c88acd8b39a0f05a012e87084fa8e0a912216f8e9725310bfab46ba8a23b02560287e7408ccb1ed62ead61768deb9135d9eb1b3fd19bed290
26
27 diff --git a/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch b/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch
28 new file mode 100644
29 index 000000000..cc34e3719
30 --- /dev/null
31 +++ b/sys-cluster/fti/files/fti-add-spinx-ext-autodoc.patch
32 @@ -0,0 +1,20 @@
33 +From 65f203e50cd08489d2c49ec8a645d82f104c6b29 Mon Sep 17 00:00:00 2001
34 +From: Alessandro Barbieri <lssndrbarbieri@×××××.com>
35 +Date: Sat, 31 Jul 2021 08:11:00 +0200
36 +Subject: [PATCH] add sphinx.ext.autodoc to doc extensions
37 +
38 +---
39 + docs/source/conf.py | 2 +-
40 + 1 file changed, 1 insertion(+), 1 deletion(-)
41 +
42 +--- a/docs/source/conf.py
43 ++++ b/docs/source/conf.py
44 +@@ -31,7 +31,7 @@
45 + # Add any Sphinx extension module names here, as strings. They can be
46 + # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
47 + # ones.
48 +-extensions = ['breathe', 'sphinx.ext.autosectionlabel']
49 ++extensions = ['breathe', 'sphinx.ext.autosectionlabel', 'sphinx.ext.autodoc']
50 +
51 + # Add any paths that contain templates here, relative to this directory.
52 + templates_path = ['_templates']
53
54 diff --git a/sys-cluster/fti/files/fti-sionlib-includedir.patch b/sys-cluster/fti/files/fti-sionlib-includedir.patch
55 new file mode 100644
56 index 000000000..dab1df493
57 --- /dev/null
58 +++ b/sys-cluster/fti/files/fti-sionlib-includedir.patch
59 @@ -0,0 +1,11 @@
60 +--- a/CMakeLists.txt
61 ++++ b/CMakeLists.txt
62 +@@ -126,7 +126,7 @@
63 + # Library: SIONLib (Optional)
64 + if(ENABLE_SIONLIB)
65 + set(SIONLIBBASE "" CACHE FILEPATH "base path to SIONlib installation")
66 +- set(SIONLIB_INCLUDE_DIR "${SIONLIBBASE}/include/")
67 ++ set(SIONLIB_INCLUDE_DIR "/usr/include/sionlib")
68 +
69 + list(APPEND INC_PRIV ${SIONLIB_INCLUDE_DIR})
70 + find_library(SIONLIB_MPI NAMES "sionmpi_64"
71
72 diff --git a/sys-cluster/fti/fti-1.6.ebuild b/sys-cluster/fti/fti-1.6.ebuild
73 new file mode 100644
74 index 000000000..fa294090d
75 --- /dev/null
76 +++ b/sys-cluster/fti/fti-1.6.ebuild
77 @@ -0,0 +1,85 @@
78 +# Copyright 1999-2021 Gentoo Authors
79 +# Distributed under the terms of the GNU General Public License v2
80 +
81 +EAPI="7"
82 +
83 +DOCS_BUILDER="sphinx"
84 +DOCS_DEPEND="
85 + dev-python/breathe
86 + dev-python/sphinx_rtd_theme
87 +"
88 +DOCS_DIR="${S}/docs/source"
89 +FORTRAN_NEEDED="fortran"
90 +PYTHON_COMPAT=( python3_{8..10} pypy3 )
91 +
92 +inherit cmake python-any-r1 docs fortran-2
93 +
94 +DESCRIPTION="Fault Tolerance Interface"
95 +HOMEPAGE="https://github.com/leobago/fti"
96 +SRC_URI="https://github.com/leobago/fti/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
97 +
98 +LICENSE="BSD"
99 +SLOT="0"
100 +KEYWORDS="~amd64"
101 +IUSE="doc examples fi-io hdf5 lustre fortran openssl sionlib test tutorial"
102 +
103 +RDEPEND="
104 + sys-libs/zlib
105 + virtual/mpi
106 +
107 + hdf5? ( sci-libs/hdf5[mpi] )
108 + lustre? ( sys-cluster/lustre )
109 + openssl? ( dev-libs/openssl )
110 + sionlib? ( sys-cluster/sionlib )
111 +"
112 +DEPEND="${RDEPEND}"
113 +BDEPEND="doc? ( app-doc/doxygen )"
114 +
115 +PATCHES=(
116 + "${FILESDIR}/${PN}-sionlib-includedir.patch"
117 + "${FILESDIR}/${PN}-add-spinx-ext-autodoc.patch"
118 +)
119 +RESTRICT="!test? ( test )"
120 +
121 +pkg_setup() {
122 + fortran-2_pkg_setup
123 +}
124 +
125 +src_configure() {
126 + local mycmakeargs=(
127 + -DSIONLIBBASE="${EPREFIX}/usr/$(get_libdir)"
128 + -DENABLE_COVERAGE=OFF
129 + -DENABLE_IME_NATIVE=OFF
130 +
131 + -DENABLE_DOCU=$(usex doc)
132 + -DENABLE_EXAMPLES=$(usex examples)
133 + -DENABLE_FI_IO=$(usex fi-io)
134 + -DENABLE_FORTRAN=$(usex fortran)
135 + -DENABLE_HDF5=$(usex hdf5)
136 + -DENABLE_LUSTRE=$(usex lustre)
137 + -DENABLE_OPENSSL=$(usex openssl)
138 + -DENABLE_SIONLIB=$(usex sionlib)
139 + -DENABLE_TESTS=$(usex test)
140 + -DENABLE_TUTORIAL=$(usex tutorial)
141 + )
142 + cmake_src_configure
143 +}
144 +
145 +src_compile() {
146 + cmake_src_compile
147 + docs_compile
148 +}
149 +
150 +src_install() {
151 + cmake_src_install
152 + einstalldocs
153 + if use examples; then
154 + mkdir -p "${ED}/usr/libexec/${PN}" || die
155 + mv "${ED}/usr/bin/examples" "${ED}/usr/libexec/${PN}/examples" || die
156 + fi
157 + if use tutorial; then
158 + mkdir -p "${ED}/usr/libexec/${PN}" || die
159 + mv "${ED}/usr/bin/tutorial" "${ED}/usr/libexec/${PN}/tutorial" || die
160 + fi
161 + find "${ED}" -name '*.a' -delete || die
162 +}
163
164 diff --git a/sys-cluster/fti/metadata.xml b/sys-cluster/fti/metadata.xml
165 new file mode 100644
166 index 000000000..1214879fe
167 --- /dev/null
168 +++ b/sys-cluster/fti/metadata.xml
169 @@ -0,0 +1,25 @@
170 +<?xml version="1.0" encoding="UTF-8"?>
171 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
172 +<pkgmetadata>
173 + <maintainer type="person">
174 + <email>lssndrbarbieri@×××××.com</email>
175 + <name>Alessandro Barbieri</name>
176 + </maintainer>
177 + <upstream>
178 + <bugs-to>https://github.com/leobago/fti/issues</bugs-to>
179 + <remote-id type="github">leobago/fti</remote-id>
180 + </upstream>
181 + <longdescription lang="en">
182 +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.
183 + </longdescription>
184 + <use>
185 + <flag name="openssl">To use the <pkg>dev-libs/openssl</pkg> MD5 rather than the built-in</flag>
186 + <flag name="fortran">Enables the build of a Fortran wrapper</flag>
187 + <flag name="lustre">Enables Lustre Support</flag>
188 + <flag name="sionlib">Enables the parallel I/O <pkg>sys-cluster/sionlib</pkg> for FTI</flag>
189 + <flag name="hdf5">Enables the HDF5 checkpoints for FTI</flag>
190 + <flag name="tutorial">Enables the generation of tutorial files</flag>
191 + <flag name="fi-io">Enables the I/O failure injection mechanism</flag>
192 + <flag name="tests">Enables the generation of tests</flag>
193 + </use>
194 +</pkgmetadata>