Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/vtk/
Date: Fri, 25 Jun 2021 13:05:22
Message-Id: 1624626303.a4f2a634a69b0d1b7315af5238136b335acb558e.andrewammerlaan@gentoo
1 commit: a4f2a634a69b0d1b7315af5238136b335acb558e
2 Author: Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
3 AuthorDate: Wed Jun 23 14:37:58 2021 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
5 CommitDate: Fri Jun 25 13:05:03 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4f2a634
7
8 sci-libs/vtk: solve RUNPATH issue
9
10 - fix issue with NULL DT_RUNPATH when USE=mpi
11 - remove obsolete docinto with USE=tcl
12 - bug #727338 is not reproducible
13
14 Bug: https://bugs.gentoo.org/727338
15 Closes: https://bugs.gentoo.org/778170
16 Closes: https://bugs.gentoo.org/795840
17 Package-Manager: Portage-3.0.20, Repoman-3.0.3
18 Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
19 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
20
21 sci-libs/vtk/vtk-8.2.0-r4.ebuild | 375 +++++++++++++++++++++++++++++++++++++++
22 1 file changed, 375 insertions(+)
23
24 diff --git a/sci-libs/vtk/vtk-8.2.0-r4.ebuild b/sci-libs/vtk/vtk-8.2.0-r4.ebuild
25 new file mode 100644
26 index 00000000000..5573bf1a4a7
27 --- /dev/null
28 +++ b/sci-libs/vtk/vtk-8.2.0-r4.ebuild
29 @@ -0,0 +1,375 @@
30 +# Copyright 1999-2021 Gentoo Authors
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=7
34 +
35 +PYTHON_COMPAT=( python3_{7,8,9} )
36 +WEBAPP_OPTIONAL=yes
37 +WEBAPP_MANUAL_SLOT=yes
38 +
39 +# Short package version
40 +SPV="$(ver_cut 1-2)"
41 +inherit flag-o-matic java-pkg-opt-2 python-single-r1 qmake-utils toolchain-funcs cmake virtualx webapp
42 +
43 +DESCRIPTION="The Visualization Toolkit"
44 +HOMEPAGE="https://www.vtk.org/"
45 +SRC_URI="
46 + https://www.vtk.org/files/release/${SPV}/VTK-${PV}.tar.gz
47 + doc? ( https://www.vtk.org/files/release/${SPV}/vtkDocHtml-${PV}.tar.gz )
48 + examples? (
49 + https://www.vtk.org/files/release/${SPV}/VTKData-${PV}.tar.gz
50 + https://www.vtk.org/files/release/${SPV}/VTKLargeData-${PV}.tar.gz
51 + )"
52 +
53 +LICENSE="BSD LGPL-2"
54 +SLOT="0"
55 +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
56 +IUSE="all-modules aqua boost doc examples ffmpeg gdal imaging java json mpi
57 + mysql odbc offscreen postgres python qt5 R rendering tbb tcl theora tk
58 + video_cards_nvidia views web +X"
59 +
60 +REQUIRED_USE="
61 + all-modules? ( boost ffmpeg gdal mpi mysql odbc postgres python qt5 )
62 + java? ( qt5 )
63 + python? ( ${PYTHON_REQUIRED_USE} )
64 + tcl? ( rendering )
65 + examples? ( python )
66 + tk? ( tcl )
67 + web? ( python )
68 + ^^ ( X aqua offscreen )"
69 +
70 +RDEPEND="
71 + app-arch/lz4
72 + dev-cpp/eigen
73 + dev-db/sqlite
74 + dev-libs/double-conversion:0=
75 + dev-libs/expat
76 + dev-libs/jsoncpp:=
77 + dev-libs/libxml2:2
78 + >=dev-libs/pugixml-1.11
79 + >=media-libs/freetype-2.5.4
80 + media-libs/glew:0=
81 + >=media-libs/libharu-2.3.0-r2
82 + media-libs/libpng:0=
83 + media-libs/libtheora
84 + media-libs/mesa
85 + media-libs/tiff:0
86 + sci-libs/exodusii
87 + sci-libs/hdf5:=
88 + sci-libs/netcdf:0=
89 + sci-libs/netcdf-cxx:3
90 + sys-libs/zlib
91 + virtual/jpeg:0
92 + virtual/opengl
93 + x11-libs/libX11
94 + x11-libs/libXmu
95 + x11-libs/libXt
96 + all-modules? (
97 + !sci-libs/xdmf2
98 + <dev-libs/pegtl-3
99 + sci-libs/kissfft
100 + )
101 + boost? ( dev-libs/boost:=[mpi?] )
102 + examples? (
103 + dev-qt/qtcore:5
104 + dev-qt/qtgui:5
105 + )
106 + ffmpeg? ( media-video/ffmpeg )
107 + gdal? ( sci-libs/gdal )
108 + java? ( >=virtual/jdk-1.8:* )
109 + mpi? (
110 + virtual/mpi[cxx,romio]
111 + $(python_gen_cond_dep '
112 + python? ( dev-python/mpi4py[${PYTHON_MULTI_USEDEP}] )
113 + ')
114 + )
115 + mysql? ( dev-db/mysql-connector-c )
116 + odbc? ( dev-db/unixODBC )
117 + offscreen? ( media-libs/mesa[osmesa] )
118 + postgres? ( dev-db/postgresql:= )
119 + python? (
120 + ${PYTHON_DEPS}
121 + $(python_gen_cond_dep '
122 + dev-python/sip:5[${PYTHON_MULTI_USEDEP}]
123 + ')
124 + )
125 + qt5? (
126 + dev-qt/designer:5
127 + dev-qt/qtcore:5
128 + dev-qt/qtgui:5
129 + dev-qt/qtopengl:5
130 + dev-qt/qtsql:5
131 + dev-qt/qtx11extras:5
132 + $(python_gen_cond_dep '
133 + python? ( dev-python/PyQt5[${PYTHON_MULTI_USEDEP}] )
134 + ')
135 + )
136 + R? ( dev-lang/R )
137 + tbb? ( dev-cpp/tbb )
138 + tcl? ( dev-lang/tcl:0= )
139 + tk? ( dev-lang/tk:0= )
140 + video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )
141 + web? (
142 + ${WEBAPP_DEPEND}
143 + $(python_gen_cond_dep '
144 + dev-python/autobahn[${PYTHON_MULTI_USEDEP}]
145 + dev-python/constantly[${PYTHON_MULTI_USEDEP}]
146 + dev-python/hyperlink[${PYTHON_MULTI_USEDEP}]
147 + dev-python/incremental[${PYTHON_MULTI_USEDEP}]
148 + dev-python/six[${PYTHON_MULTI_USEDEP}]
149 + dev-python/twisted[${PYTHON_MULTI_USEDEP}]
150 + dev-python/txaio[${PYTHON_MULTI_USEDEP}]
151 + dev-python/zope-interface[${PYTHON_MULTI_USEDEP}]
152 + ')
153 + )
154 +"
155 +DEPEND="${RDEPEND}"
156 +BDEPEND="
157 + doc? ( app-doc/doxygen )
158 + mpi? ( app-admin/chrpath )
159 +"
160 +
161 +S="${WORKDIR}"/VTK-${PV}
162 +
163 +PATCHES=(
164 + "${FILESDIR}"/${PN}-8.1.0-openmpi-4-compatibility.patch
165 + "${FILESDIR}"/${P}-qt-5.15.patch # bug 726960
166 + "${FILESDIR}"/${P}-gcc-10.patch # bug 723374
167 + "${FILESDIR}"/${P}-fno-common.patch # bug 721048
168 + "${FILESDIR}"/${P}-py38.patch
169 + "${FILESDIR}"/${P}-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch # bug #751088
170 + "${FILESDIR}"/${P}-pugixml.patch
171 + "${FILESDIR}"/${P}-0001-fix-library-installation-dir-for-xdmf3.patch
172 +)
173 +
174 +RESTRICT="test"
175 +
176 +pkg_setup() {
177 + use java && java-pkg-opt-2_pkg_setup
178 + use python && python-single-r1_pkg_setup
179 + use web && webapp_pkg_setup
180 +}
181 +
182 +src_prepare() {
183 + cmake_src_prepare
184 +
185 + local x
186 + # missing: VPIC freerange libproj4 mrmpi sqlite utf8 verdict xmdf2 xmdf3 zfp
187 + for x in expat freetype hdf5 jpeg jsoncpp kissfft libharu libxml2 lz4 netcdf pugixml png tiff zlib; do
188 + ebegin "Dropping bundled ${x}"
189 + rm -r ThirdParty/${x}/vtk${x} || die
190 + eend $?
191 + done
192 +
193 + sed -i -e '/add_subdirectory(vtkpugixml)/d' ThirdParty/pugixml/CMakeLists.txt || die
194 + sed -i -e '/vtk_target_export(vtkpugixml)/d' ThirdParty/pugixml/CMakeLists.txt || die
195 +
196 + # my_bool is no longer used in MySQL and MariaDB isn't supported in vtk-8
197 + sed -e 's/my_bool/bool/' -i IO/MySQL/vtkMySQL{Database,Query}.cxx || die
198 +
199 + if use doc; then
200 + einfo "Removing .md5 files from documents."
201 + rm -f "${WORKDIR}"/html/*.md5 || die "Failed to remove superfluous hashes"
202 + sed -e "s|\${VTK_BINARY_DIR}/Utilities/Doxygen/doc|${WORKDIR}|" \
203 + -i Utilities/Doxygen/CMakeLists.txt || die
204 + fi
205 +}
206 +
207 +src_configure() {
208 + # general configuration
209 + local mycmakeargs=(
210 + -Wno-dev
211 + -DVTK_DIR="${S}"
212 + -DVTK_INSTALL_LIBRARY_DIR=$(get_libdir)
213 + -DVTK_INSTALL_PACKAGE_DIR="$(get_libdir)/cmake/${PN}-${SPV}"
214 + -DVTK_INSTALL_DOC_DIR="${EPREFIX}/usr/share/doc/${PF}"
215 + -DVTK_DATA_ROOT="${EPREFIX}/usr/share/${PN}/data"
216 + -DVTK_CUSTOM_LIBRARY_SUFFIX=""
217 + -DBUILD_SHARED_LIBS=ON
218 + -DVTK_USE_SYSTEM_AUTOBAHN=ON
219 + -DVTK_USE_SYSTEM_EXPAT=ON
220 + -DVTK_USE_SYSTEM_FREETYPE=ON
221 + -DVTK_USE_SYSTEM_FreeType=ON
222 + # Use bundled gl2ps (bundled version is a patched version of 1.3.9. Post 1.3.9 versions should be compatible)
223 + -DVTK_USE_SYSTEM_GL2PS=OFF
224 + -DVTK_USE_SYSTEM_HDF5=ON
225 + -DVTK_USE_SYSTEM_JPEG=ON
226 + -DVTK_USE_SYSTEM_LIBPROJ=OFF
227 + -DVTK_USE_SYSTEM_LIBXML2=ON
228 + -DVTK_USE_SYSTEM_LibXml2=ON
229 + -DVTK_USE_SYSTEM_NETCDF=ON
230 + -DVTK_USE_SYSTEM_OGGTHEORA=ON
231 + -DVTK_USE_SYSTEM_PUGIXML=ON
232 + -DVTK_USE_SYSTEM_PNG=ON
233 + -DVTK_USE_SYSTEM_TIFF=ON
234 + -DVTK_USE_SYSTEM_TWISTED=ON
235 + -DVTK_USE_SYSTEM_XDMF2=OFF
236 + -DVTK_USE_SYSTEM_XDMF3=OFF
237 + -DVTK_USE_SYSTEM_ZLIB=ON
238 + -DVTK_USE_SYSTEM_ZOPE=ON
239 + -DVTK_USE_SYSTEM_LIBRARIES=ON
240 + # Use bundled diy2 (no gentoo package / upstream does not provide a Finddiy2.cmake or diy2Config.cmake / diy2-config.cmake)
241 + -DVTK_USE_SYSTEM_DIY2=OFF
242 + -DVTK_USE_GL2PS=ON
243 + -DVTK_USE_LARGE_DATA=ON
244 + -DVTK_USE_PARALLEL=ON
245 + -DVTK_EXTRA_COMPILER_WARNINGS=ON
246 + -DVTK_Group_StandAlone=ON
247 + -DBUILD_DOCUMENTATION=$(usex doc)
248 + -DBUILD_EXAMPLES=$(usex examples)
249 + -DBUILD_VTK_BUILD_ALL_MODULES_FOR_TESTS=off
250 + -DVTK_BUILD_ALL_MODULES=$(usex all-modules)
251 + -DUSE_DOCUMENTATION_HTML_HELP=$(usex doc)
252 + -DVTK_Group_Imaging=$(usex imaging)
253 + -DVTK_Group_MPI=$(usex mpi)
254 + -DVTK_Group_Rendering=$(usex rendering)
255 + -DVTK_Group_Tk=$(usex tk)
256 + -DVTK_Group_Views=$(usex views)
257 + -DVTK_Group_Web=$(usex web)
258 + -DVTK_SMP_IMPLEMENTATION_TYPE="$(usex tbb TBB Sequential)"
259 + -DVTK_WWW_DIR="${EPREFIX}/${MY_HTDOCSDIR}"
260 + -DVTK_WRAP_JAVA=$(usex java)
261 + -DVTK_WRAP_PYTHON=$(usex python)
262 + -DVTK_WRAP_PYTHON_SIP=$(usex python)
263 + -DVTK_WRAP_TCL=$(usex tcl)
264 + -DVTK_USE_BOOST=$(usex boost)
265 + -DUSE_VTK_USE_BOOST=$(usex boost)
266 + -DModule_vtkInfovisBoost=$(usex boost)
267 + -DModule_vtkInfovisBoostGraphAlgorithms=$(usex boost)
268 + -DVTK_USE_ODBC=$(usex odbc)
269 + -DModule_vtkIOODBC=$(usex odbc)
270 + -DVTK_USE_OFFSCREEN=$(usex offscreen)
271 + -DVTK_OPENGL_HAS_OSMESA=$(usex offscreen)
272 + -DVTK_USE_OGGTHEORA_ENCODER=$(usex theora)
273 + -DVTK_USE_NVCONTROL=$(usex video_cards_nvidia)
274 + -DModule_vtkFiltersStatisticsGnuR=$(usex R)
275 + -DVTK_USE_X=$(usex X)
276 + # IO
277 + -DVTK_USE_FFMPEG_ENCODER=$(usex ffmpeg)
278 + -DModule_vtkIOGDAL=$(usex gdal)
279 + -DModule_vtkIOGeoJSON=$(usex json)
280 + -DModule_vtkIOXdmf2=$(usex all-modules)
281 + -DBUILD_TESTING=$(usex examples)
282 + # Apple stuff, does it really work?
283 + -DVTK_USE_COCOA=$(usex aqua)
284 + )
285 +
286 + if use all-modules; then
287 + mycmakeargs+=(
288 + -DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=ON
289 + # we don't have a package for zfp yet
290 + -DVTK_USE_SYSTEM_ZFP=OFF
291 + )
292 + fi
293 +
294 + if use java; then
295 + local javacargs=$(java-pkg_javac-args)
296 + mycmakeargs+=( -DJAVAC_OPTIONS=${javacargs// /;} )
297 + fi
298 +
299 + if use mpi; then
300 + mycmakeargs+=( -DVTK_USE_SYSTEM_MPI4PY=ON )
301 + fi
302 +
303 + if use python; then
304 + mycmakeargs+=(
305 + -DVTK_INSTALL_PYTHON_MODULES_DIR="$(python_get_sitedir)"
306 + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
307 + -DPYTHON_LIBRARY="$(python_get_library_path)"
308 + -DSIP_PYQT_DIR="${EPREFIX}/usr/share/sip"
309 + -DSIP_INCLUDE_DIR="$(python_get_includedir)"
310 + -DVTK_PYTHON_INCLUDE_DIR="$(python_get_includedir)"
311 + -DVTK_PYTHON_LIBRARY="$(python_get_library_path)"
312 + -DVTK_USE_SYSTEM_SIX=ON
313 + )
314 + fi
315 +
316 + if use qt5; then
317 + mycmakeargs+=(
318 + -DVTK_USE_QVTK=ON
319 + -DVTK_USE_QVTK_OPENGL=ON
320 + -DVTK_USE_QVTK_QTOPENGL=ON
321 + -DQT_WRAP_CPP=ON
322 + -DQT_WRAP_UI=ON
323 + -DVTK_INSTALL_QT_DIR="$(basename $(qt5_get_libdir))/qt5/plugins/designer"
324 + -DDESIRED_QT_VERSION=5
325 + -DVTK_QT_VERSION=5
326 + -DQT_MOC_EXECUTABLE="$(qt5_get_bindir)/moc"
327 + -DQT_UIC_EXECUTABLE="$(qt5_get_bindir)/uic"
328 + -DQT_INCLUDE_DIR="${EPREFIX}/usr/include/qt5"
329 + -DQT_QMAKE_EXECUTABLE="$(qt5_get_bindir)/qmake"
330 + -DVTK_Group_Qt:BOOL=ON
331 + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebKitWidgets=ON
332 + )
333 + fi
334 +
335 + if use R; then
336 + mycmakeargs+=(
337 + -DR_LIBRARY_BLAS=/usr/$(get_libdir)/R/lib/libR.so
338 + -DR_LIBRARY_LAPACK=/usr/$(get_libdir)/R/lib/libR.so
339 + )
340 + fi
341 +
342 + append-cppflags -D__STDC_CONSTANT_MACROS -D_UNICODE
343 +
344 + use java && export JAVA_HOME="${EPREFIX}/etc/java-config-2/current-system-vm"
345 +
346 + if use mpi; then
347 + export CC=mpicc
348 + export CXX=mpicxx
349 + export FC=mpif90
350 + export F90=mpif90
351 + export F77=mpif77
352 + fi
353 +
354 + cmake_src_configure
355 +}
356 +
357 +src_install() {
358 + use web && webapp_src_preinst
359 +
360 + cmake_src_install
361 +
362 + use java && java-pkg_regjar "${ED}"/usr/$(get_libdir)/${PN}.jar
363 +
364 + # Stop web page images from being compressed
365 + use doc && docompress -x /usr/share/doc/${PF}/doxygen
366 +
367 + # install examples
368 + if use examples; then
369 + einfo "Installing examples"
370 + mv -v {E,e}xamples || die
371 + dodoc -r examples
372 + docompress -x /usr/share/doc/${PF}/examples
373 + fi
374 +
375 + # with MPI, rpaths are not deleted properly
376 + if use mpi; then
377 + chrpath -d "${ED}"/usr/$(get_libdir)/*.so* || die
378 + chrpath -d "${ED}"/usr/bin/* || die
379 + if use python; then
380 + chrpath -d "${ED}"/$(python_get_sitedir)/vtkmodules/*.so || die
381 + fi
382 + fi
383 +
384 + use python && python_optimize
385 +
386 + # environment
387 + cat >> "${T}"/40${PN} <<- EOF || die
388 + VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data
389 + VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV}
390 + VTKHOME=${EPREFIX}/usr
391 + EOF
392 + doenvd "${T}"/40${PN}
393 +
394 + use web && webapp_src_install
395 +}
396 +
397 +# webapp.eclass exports these but we want it optional #534036
398 +pkg_postinst() {
399 + use web && webapp_pkg_postinst
400 +}
401 +
402 +pkg_prerm() {
403 + use web && webapp_pkg_prerm
404 +}