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 |
+} |