Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/hdf5/files/, sci-libs/hdf5/
Date: Tue, 03 May 2022 02:28:06
Message-Id: 1651544848.9acdbbd4c8debd771ac4a6e39c1073551f7ce43f.sam@gentoo
1 commit: 9acdbbd4c8debd771ac4a6e39c1073551f7ce43f
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 3 02:27:07 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue May 3 02:27:28 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9acdbbd4
7
8 sci-libs/hdf5: add 1.12.2
9
10 Lots of correctness and sanitizer fixes in .2 so possibly helps
11 with the sparc bug (although we've applied a workaround now anyway).
12
13 Bug: https://bugs.gentoo.org/686620
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 sci-libs/hdf5/Manifest | 1 +
17 .../hdf5/files/hdf5-1.12.2-cmake_installdirs.patch | 163 +++++++++++++++++++++
18 sci-libs/hdf5/hdf5-1.12.2.ebuild | 119 +++++++++++++++
19 3 files changed, 283 insertions(+)
20
21 diff --git a/sci-libs/hdf5/Manifest b/sci-libs/hdf5/Manifest
22 index bd0243d24944..54270f9e0c89 100644
23 --- a/sci-libs/hdf5/Manifest
24 +++ b/sci-libs/hdf5/Manifest
25 @@ -1,2 +1,3 @@
26 DIST hdf5-1.10.5.tar.bz2 8706317 BLAKE2B ac326be8fe4ccc4b0153f15bc7d65aa8f1adc2ae279d3980f57ed46722b754d3f36ecf1d6273c75e80ed1afd4bbf10c6b1c5d9408e1f83a4b2e397e7902a7d3c SHA512 769e43b8672e26fe24ed68da0228c010d3d9bc950ca09f0bc60707911a2f26f2f8415c8abc8ec06e07667148d8cdb3b0c7b3e7860d9b19739629c5dfd5ce73d4
27 DIST hdf5-1.12.1.tar.bz2 9724309 BLAKE2B cc75ba497188b33972218d02a7601acad1a0443bdb934ecd1641ef5996076fe120e3b72dba3a99d99f919fb4e478d1e531414448de9a7b97a0afde58a4c7c23f SHA512 158a067ee284ccb9e2c4db12e9d37cf187d90d9ef1bed7a6303e2c3a2fd216d7b13a46c5f46018b097511281c4246156b6f917633ca88872f10f0ad04be285fd
28 +DIST hdf5-1.12.2.tar.bz2 10494264 BLAKE2B 99ca5b57f6f54fa044c909f0773de62b218c1f0ec3c011f88f3c227536dd719e77ddbe42d562b1214e8843e41d8fc56db499d7f122876fdd36ef31b235229cb7 SHA512 cbb4663570de76b11adb6bf62cfdb754371d31eeab04691479a5764a45207a9c1309665ab80f51c63a4b9b87354f9cbe6835cef506a9fd554d142c6d2bec21e5
29
30 diff --git a/sci-libs/hdf5/files/hdf5-1.12.2-cmake_installdirs.patch b/sci-libs/hdf5/files/hdf5-1.12.2-cmake_installdirs.patch
31 new file mode 100644
32 index 000000000000..8218f31aea66
33 --- /dev/null
34 +++ b/sci-libs/hdf5/files/hdf5-1.12.2-cmake_installdirs.patch
35 @@ -0,0 +1,163 @@
36 +--- a/CMakeLists.txt
37 ++++ b/CMakeLists.txt
38 +@@ -46,6 +46,13 @@ if (CMAKE_VERSION VERSION_LESS "3.14.0")
39 + endif()
40 + endif ()
41 +
42 ++include (GNUInstallDirs)
43 ++set (HDF5_INSTALL_BIN_DIR "${CMAKE_INSTALL_FULL_BINDIR}")
44 ++set (HDF5_INSTALL_DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR}")
45 ++set (HDF5_INSTALL_DOC_DIR "${CMAKE_INSTALL_FULL_DOCDIR}")
46 ++set (HDF5_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
47 ++set (HDF5_INSTALL_LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
48 ++
49 + #-----------------------------------------------------------------------------
50 + # Instructions for use : Sub-Project Build
51 + #
52 +--- a/c++/src/CMakeLists.txt
53 ++++ b/c++/src/CMakeLists.txt
54 +@@ -173,8 +173,8 @@ endif ()
55 + #-----------------------------------------------------------------------------
56 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
57 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
58 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
59 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
60 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
61 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
62 + set (_PKG_CONFIG_LIBNAME "${HDF5_CPP_LIB_CORENAME}")
63 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
64 +
65 +--- a/doxygen/CMakeLists.txt
66 ++++ b/doxygen/CMakeLists.txt
67 +@@ -36,7 +36,7 @@ if (DOXYGEN_FOUND)
68 +
69 + install (
70 + DIRECTORY ${HDF5_BINARY_DIR}/hdf5lib_docs/html
71 +- DESTINATION ${HDF5_INSTALL_DATA_DIR}
72 ++ DESTINATION ${HDF5_INSTALL_DOC_DIR}
73 + COMPONENT Documents
74 + )
75 +
76 +--- a/fortran/src/CMakeLists.txt
77 ++++ b/fortran/src/CMakeLists.txt
78 +@@ -537,8 +537,8 @@ endif ()
79 + #-----------------------------------------------------------------------------
80 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
81 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
82 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
83 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
84 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
85 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
86 + set (_PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_CORENAME}")
87 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
88 +
89 +--- a/hl/c++/src/CMakeLists.txt
90 ++++ b/hl/c++/src/CMakeLists.txt
91 +@@ -91,8 +91,8 @@ endif ()
92 + #-----------------------------------------------------------------------------
93 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
94 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
95 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
96 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
97 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
98 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
99 + set (_PKG_CONFIG_LIBNAME "${HDF5_HL_CPP_LIB_CORENAME}")
100 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
101 +
102 +--- a/hl/fortran/src/CMakeLists.txt
103 ++++ b/hl/fortran/src/CMakeLists.txt
104 +@@ -324,8 +324,8 @@ endif ()
105 + #-----------------------------------------------------------------------------
106 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
107 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
108 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
109 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
110 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
111 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
112 + set (_PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_CORENAME}")
113 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
114 +
115 +--- a/hl/src/CMakeLists.txt
116 ++++ b/hl/src/CMakeLists.txt
117 +@@ -123,8 +123,8 @@ endif ()
118 + #-----------------------------------------------------------------------------
119 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
120 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
121 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
122 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
123 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
124 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
125 + set (_PKG_CONFIG_LIBNAME "${HDF5_HL_LIB_CORENAME}")
126 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
127 +
128 +--- a/src/CMakeLists.txt
129 ++++ b/src/CMakeLists.txt
130 +@@ -1288,8 +1288,8 @@ endif ()
131 + #-----------------------------------------------------------------------------
132 + set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
133 + set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
134 +-set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
135 +-set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
136 ++set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
137 ++set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
138 + set (_PKG_CONFIG_LIBNAME "${HDF5_LIB_CORENAME}")
139 + set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
140 +
141 +--- a/CMakeInstallation.cmake
142 ++++ b/CMakeInstallation.cmake
143 +@@ -31,7 +31,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
144 + if (HDF5_EXPORTED_TARGETS)
145 + install (
146 + EXPORT ${HDF5_EXPORTED_TARGETS}
147 +- DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
148 ++ DESTINATION ${HDF5_INSTALL_LIB_DIR}/cmake
149 + FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
150 + NAMESPACE ${HDF_PACKAGE_NAMESPACE}
151 + COMPONENT configinstall
152 +@@ -67,12 +67,12 @@ set (HDF5_VERSION_MINOR ${HDF5_PACKAGE_VERSION_MINOR})
153 + # Configure the hdf5-config.cmake file for the build directory
154 + #-----------------------------------------------------------------------------
155 + set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
156 +-set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_INSTALL_CMAKE_DIR}" )
157 ++set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_INSTALL_LIB_DIR}/cmake" )
158 + set (CURRENT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
159 + configure_package_config_file (
160 + ${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
161 + "${HDF5_BINARY_DIR}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
162 +- INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
163 ++ INSTALL_DESTINATION "${HDF5_INSTALL_LIB_DIR}/cmake"
164 + PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
165 + INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
166 + )
167 +@@ -81,19 +81,19 @@ configure_package_config_file (
168 + # Configure the hdf5-config.cmake file for the install directory
169 + #-----------------------------------------------------------------------------
170 + set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
171 +-set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${HDF5_INSTALL_CMAKE_DIR}" )
172 ++set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${HDF5_INSTALL_LIB_DIR}/cmake" )
173 + set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}" )
174 + configure_package_config_file (
175 + ${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
176 + "${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
177 +- INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
178 ++ INSTALL_DESTINATION "${HDF5_INSTALL_LIB_DIR}/cmake"
179 + PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
180 + )
181 +
182 + if (NOT HDF5_EXTERNALLY_CONFIGURED)
183 + install (
184 + FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake
185 +- DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
186 ++ DESTINATION ${HDF5_INSTALL_LIB_DIR}/cmake
187 + COMPONENT configinstall
188 + )
189 + endif ()
190 +@@ -109,7 +109,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
191 + )
192 + install (
193 + FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
194 +- DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
195 ++ DESTINATION ${HDF5_INSTALL_LIB_DIR}/cmake
196 + COMPONENT configinstall
197 + )
198 + endif ()
199
200 diff --git a/sci-libs/hdf5/hdf5-1.12.2.ebuild b/sci-libs/hdf5/hdf5-1.12.2.ebuild
201 new file mode 100644
202 index 000000000000..76d54a46d435
203 --- /dev/null
204 +++ b/sci-libs/hdf5/hdf5-1.12.2.ebuild
205 @@ -0,0 +1,119 @@
206 +# Copyright 1999-2022 Gentoo Authors
207 +# Distributed under the terms of the GNU General Public License v2
208 +
209 +EAPI=7
210 +
211 +FORTRAN_NEEDED="fortran"
212 +
213 +inherit cmake flag-o-matic fortran-2 toolchain-funcs
214 +
215 +MY_P="${PN}-${PV/_p/-patch}"
216 +MAJOR_P="${PN}-$(ver_cut 1-2)"
217 +
218 +DESCRIPTION="General purpose library and file format for storing scientific data"
219 +HOMEPAGE="https://www.hdfgroup.org/HDF5/"
220 +SRC_URI="https://www.hdfgroup.org/ftp/HDF5/releases/${MAJOR_P}/${MY_P}/src/${MY_P}.tar.bz2"
221 +
222 +LICENSE="NCSA-HDF"
223 +SLOT="0/${PV%%_p*}"
224 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
225 +IUSE="cxx debug doc examples fortran +hl mpi szip test threads unsupported zlib"
226 +
227 +REQUIRED_USE="
228 + !unsupported? (
229 + mpi? ( !cxx !threads )
230 + threads? ( !cxx !fortran !hl )
231 + )"
232 +
233 +RESTRICT="!test? ( test )"
234 +
235 +RDEPEND="
236 + mpi? ( virtual/mpi[romio] )
237 + szip? ( virtual/szip )
238 + zlib? ( sys-libs/zlib:0= )
239 +"
240 +DEPEND="${RDEPEND}"
241 +BDEPEND="doc? (
242 + app-doc/doxygen
243 + virtual/latex-base
244 +)"
245 +
246 +PATCHES=(
247 + "${FILESDIR}"/${PN}-1.12.2-cmake_installdirs.patch
248 +)
249 +
250 +S="${WORKDIR}/${MY_P}"
251 +
252 +pkg_setup() {
253 + use fortran && fortran-2_pkg_setup
254 +
255 + if use mpi; then
256 + if has_version 'sci-libs/hdf5[-mpi]'; then
257 + ewarn "Installing hdf5 with mpi enabled with a previous hdf5 with mpi disabled may fail."
258 + ewarn "Try to uninstall the current hdf5 prior to enabling mpi support."
259 + fi
260 + export CC="mpicc"
261 + use fortran && export FC="mpif90"
262 + append-libs -lmpi
263 + elif has_version 'sci-libs/hdf5[mpi]'; then
264 + ewarn "Installing hdf5 with mpi disabled while having hdf5 installed with mpi enabled may fail."
265 + ewarn "Try to uninstall the current hdf5 prior to disabling mpi support."
266 + fi
267 +}
268 +
269 +src_configure() {
270 + use sparc && tc-is-gcc && append-flags -fno-tree-ccp # bug 686620
271 + local mycmakeargs=(
272 + -DBUILD_STATIC_LIBS=OFF
273 + -DFETCHCONTENT_FULLY_DISCONNECTED=ON
274 + -DHDF5_BUILD_EXAMPLES=OFF
275 + -DALLOW_UNSUPPORTED=$(usex unsupported)
276 + -DBUILD_TESTING=$(usex test)
277 + -DHDF5_BUILD_CPP_LIB=$(usex cxx)
278 + -DHDF5_BUILD_DOC=$(usex doc)
279 + -DHDF5_BUILD_FORTRAN=$(usex fortran)
280 + -DHDF5_BUILD_HL_LIB=$(usex hl)
281 + -DHDF5_ENABLE_CODESTACK=$(usex debug)
282 + -DHDF5_ENABLE_PARALLEL=$(usex mpi)
283 + -DHDF5_ENABLE_SZIP_ENCODING=$(usex szip)
284 + -DHDF5_ENABLE_SZIP_SUPPORT=$(usex szip)
285 + -DHDF5_ENABLE_THREADSAFE=$(usex threads)
286 + -DHDF5_ENABLE_Z_LIB_SUPPORT=$(usex zlib)
287 + )
288 + cmake_src_configure
289 +}
290 +
291 +src_install() {
292 + cmake_src_install
293 +
294 + # TODO: generate functioning example runners from their respective
295 + # .in files - as of version 1.12.1 upstream only has it implemented
296 + # for autoconf.
297 + if use examples; then
298 + # These are all useless outside the source tree
299 + rm -f {examples,c++/examples,fortran/examples}/{Makefile*,CMake*}
300 + rm -f hl/{examples,c++/examples,fortran/examples}/{Makefile*,CMake*}
301 +
302 + dodoc -r examples
303 + if use cxx; then
304 + docinto c++
305 + dodoc -r c++/examples
306 + fi
307 + if use fortran; then
308 + docinto fortran
309 + dodoc -r fortran/examples
310 + fi
311 + if use hl; then
312 + docinto hl
313 + dodoc -r hl/examples
314 + if use cxx; then
315 + docinto hl/c++
316 + dodoc -r hl/c++/examples
317 + fi
318 + if use fortran; then
319 + docinto hl/fortran
320 + dodoc -r hl/fortran/examples
321 + fi
322 + fi
323 + fi
324 +}