diff --git a/vtk-8.2.0-fix-gcc10-visibility.patch b/vtk-8.2.0-fix-gcc10-visibility.patch deleted file mode 100644 index d3fd501..0000000 --- a/vtk-8.2.0-fix-gcc10-visibility.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMake/VTKGenerateExportHeader.cmake b/CMake/VTKGenerateExportHeader.cmake -index 9a7a7638..2d842381 100644 ---- a/CMake/VTKGenerateExportHeader.cmake -+++ b/CMake/VTKGenerateExportHeader.cmake -@@ -174,10 +174,11 @@ macro(_vtk_test_compiler_hidden_visibility) - execute_process(COMMAND ${CMAKE_C_COMPILER} --version - OUTPUT_VARIABLE _gcc_version_info - ERROR_VARIABLE _gcc_version_info) -- string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" -+ string(REGEX MATCH "[0-9]+\\.[0-9]\\.[0-9]*" - _gcc_version "${_gcc_version_info}") - # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the - # patch level, handle this here: -+ # from fedora: "cc (GCC) 10.0.1 20200420 (Red Hat 10.0.1-0.12)" - if(NOT _gcc_version) - string(REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0" - _gcc_version "${_gcc_version_info}") diff --git a/vtk-gcc10.patch b/vtk-gcc10.patch new file mode 100644 index 0000000..27b15cd --- /dev/null +++ b/vtk-gcc10.patch @@ -0,0 +1,32 @@ +diff -up VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_create_par.c.gcc10 VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_create_par.c +--- VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_create_par.c.gcc10 2019-01-30 10:15:13.000000000 -0700 ++++ VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_create_par.c 2020-05-08 21:38:46.401363001 -0600 +@@ -614,5 +614,5 @@ int ex_create_par_int(const char *path, + * Prevent warning in some versions of ranlib(1) because the object + * file has no symbols. + */ +-const char exodus_unused_symbol_dummy_1; ++const char exodus_unused_symbol_dummy_ex_create_par; + #endif +diff -up VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_open_par.c.gcc10 VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_open_par.c +--- VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_open_par.c.gcc10 2019-01-30 10:15:13.000000000 -0700 ++++ VTK-8.2.0/ThirdParty/exodusII/vtkexodusII/src/ex_open_par.c 2020-05-08 21:38:46.402363007 -0600 +@@ -474,5 +474,5 @@ int ex_open_par_int(const char *path, in + * Prevent warning in some versions of ranlib(1) because the object + * file has no symbols. + */ +-const char exodus_unused_symbol_dummy_1; ++const char exodus_unused_symbol_dummy_ex_open_par; + #endif +diff -up VTK-8.2.0/CMake/VTKGenerateExportHeader.cmake.gcc10 VTK-8.2.0/CMake/VTKGenerateExportHeader.cmake +--- VTK-8.2.0/CMake/VTKGenerateExportHeader.cmake.gcc10 2019-01-30 10:15:13.000000000 -0700 ++++ VTK-8.2.0/CMake/VTKGenerateExportHeader.cmake 2020-05-26 21:07:24.625840251 -0600 +@@ -174,7 +174,7 @@ macro(_vtk_test_compiler_hidden_visibili + execute_process(COMMAND ${CMAKE_C_COMPILER} --version + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) +- string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" ++ string(REGEX MATCH "[1-9][0-9]*\\.[0-9]+\\.[0-9]+" + _gcc_version "${_gcc_version_info}") + # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the + # patch level, handle this here: diff --git a/vtk.spec b/vtk.spec index 0f6c6ec..27cf188 100644 --- a/vtk.spec +++ b/vtk.spec @@ -1,13 +1,20 @@ -# This package depends on automagic byte compilation -# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 -%global _python_bytecompile_extra 1 - # Disable OSMesa builds for now - see Bug 744434 %bcond_without OSMesa %bcond_without java %bcond_without mpich %bcond_without qt5 %bcond_without openmpi +# s390x on EL8 does not have xorg-x11-drv-dummy +%if 0%{?rhel} +%ifarch s390x +%bcond_with xdummy +%else +%bcond_without xdummy +%endif +%else +%bcond_without xdummy +%endif + # VTK currently is carrying local modifications to gl2ps %bcond_with gl2ps %if !%{with gl2ps} @@ -17,7 +24,7 @@ Summary: The Visualization Toolkit - A high level 3D visualization library Name: vtk Version: 8.2.0 -Release: 13.0.riscv64%{?dist} +Release: 17.0.riscv64%{?dist} # This is a variant BSD license, a cross between BSD and ZLIB. # For all intents, it has the same rights and restrictions as BSD. # http://fedoraproject.org/wiki/Licensing/BSD#VTKBSDVariant @@ -30,16 +37,14 @@ Source3: FindPEGTL.cmake Patch0: https://gitlab.kitware.com/vtk/vtk/merge_requests/5883.patch # Proj 6 support Patch1: vtk-proj6_compat.patch + +# GCC 10 support based on: +# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6420 +Patch2: vtk-gcc10.patch + # Support for RISC-V (riscv64) Patch10: VTK-8.2.0-riscv64.patch -# URL: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6420.patch -# Fix GCC 10 multiple definitions error -Patch11: 6420.patch - -# See: https://gitlab.kitware.com/vtk/vtk/issues/17775 -Patch12: vtk-8.2.0-fix-gcc10-visibility.patch - URL: http://vtk.org/ BuildRequires: cmake @@ -49,11 +54,7 @@ BuildRequires: libX11-devel, libXt-devel, libXext-devel BuildRequires: libICE-devel, libGL-devel %{?with_OSMesa:BuildRequires: mesa-libOSMesa-devel} BuildRequires: tk-devel, tcl-devel -%if 0%{?fedora} >= 30 BuildRequires: python%{python3_pkgversion}-devel -%else -BuildRequires: python2-devel -%endif BuildRequires: expat-devel, freetype-devel, libjpeg-devel, libpng-devel %if 0%{with gl2ps} BuildRequires: gl2ps-devel @@ -65,12 +66,8 @@ BuildRequires: cmake(Qt5) BuildRequires: cmake(Qt5UiPlugin) BuildRequires: cmake(Qt5X11Extras) BuildRequires: qt5-qtwebkit-devel -%if 0%{?fedora} >= 30 BuildRequires: python%{python3_pkgversion}-qt5 %else -BuildRequires: python-qt5 -%endif -%else BuildRequires: PyQt4-devel BuildRequires: qt4-devel BuildRequires: qtwebkit-devel @@ -85,11 +82,7 @@ BuildRequires: glew-devel BuildRequires: hdf5-devel BuildRequires: jsoncpp-devel BuildRequires: libtheora-devel -%if 0%{?fedora} >= 28 -BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif +BuildRequires: mariadb-connector-c-devel BuildRequires: netcdf-cxx-devel BuildRequires: libpq-devel BuildRequires: PEGTL-devel @@ -106,24 +99,18 @@ BuildRequires: lz4-devel BuildRequires: motif-devel %if %{with mpich} BuildRequires: mpich-devel -%if 0%{?fedora} >= 30 BuildRequires: python%{?python3_pkgversion}-mpi4py-mpich -%else -BuildRequires: python2-mpi4py-mpich -%endif BuildRequires: netcdf-mpich-devel %endif %if %{with openmpi} BuildRequires: openmpi-devel -%if 0%{?fedora} >= 30 BuildRequires: python%{?python3_pkgversion}-mpi4py-openmpi -%else -BuildRequires: python2-mpi4py-openmpi -%endif BuildRequires: netcdf-openmpi-devel %endif # For %check +%if %{with xdummy} BuildRequires: xorg-x11-drv-dummy +%endif %{!?with_java:Conflicts: vtk-java} Requires: hdf5 = %{_hdf5_version} @@ -181,13 +168,8 @@ Install the %{name}-openmpi package to get a version compiled with openmpi. %package devel Summary: VTK header files for building C++ code Requires: vtk%{?_isa} = %{version}-%{release} -%if 0%{?fedora} >= 30 Requires: python%{python3_pkgversion}-vtk%{?_isa} = %{version}-%{release} Requires: python%{python3_pkgversion}-vtk-qt%{?_isa} = %{version}-%{release} -%else -Requires: python2-vtk%{?_isa} = %{version}-%{release} -Requires: python2-vtk-qt%{?_isa} = %{version}-%{release} -%endif %{?with_OSMesa:Requires: mesa-libOSMesa-devel%{?_isa}} Requires: cmake Requires: blas-devel%{?_isa} @@ -215,6 +197,8 @@ Requires: PEGTL-devel%{?_isa} Requires: proj-devel%{?_isa} Requires: pugixml-devel%{?_isa} Requires: sqlite-devel%{?_isa} +Requires: libX11-devel%{?_isa} +Requires: libXext-devel%{?_isa} Requires: libXt-devel%{?_isa} Requires: mysql-devel%{?_isa} Requires: netcdf-cxx-devel%{?_isa} @@ -229,17 +213,12 @@ Requires: qtwebkit-devel%{?_isa} %endif Requires: jsoncpp-devel%{?_isa} # bz #1183210 + #1183530 -%if 0%{?fedora} >= 30 Requires: python%{python3_pkgversion}-devel -%else -Requires: python2-devel -%endif %description devel This provides the VTK header files required to compile C++ programs that use VTK to do 3D visualization. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk Summary: Python 3 bindings for VTK Requires: vtk%{?_isa} = %{version}-%{release} @@ -249,15 +228,6 @@ Provides: python%{python3_version}dist(vtk) = %{version} %description -n python%{python3_pkgversion}-vtk Python 3 bindings for VTK. -%else -%package -n python2-vtk -Summary: Python 2 bindings for VTK -Requires: vtk%{?_isa} = %{version}-%{release} -%{?python_provide:%python_provide python2-vtk} - -%description -n python2-vtk -Python 2 bindings for VTK. -%endif %if %{with java} %package java @@ -275,7 +245,6 @@ Requires: vtk%{?_isa} = %{version}-%{release} %description qt Qt bindings for VTK. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk-qt Summary: Qt Python 3 bindings for VTK Requires: vtk%{?_isa} = %{version}-%{release} @@ -283,15 +252,6 @@ Requires: vtk%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-vtk-qt Qt Python 3 bindings for VTK. -%else -%package -n python2-vtk-qt -Summary: Qt Python 2 bindings for VTK -Requires: vtk%{?_isa} = %{version}-%{release} -%{?python_provide:%python_provide python2-vtk-qt} - -%description -n python2-vtk-qt -Qt Python 2 bindings for VTK. -%endif %if %{with mpich} %package mpich @@ -346,11 +306,7 @@ Requires: qtwebkit-devel%{?_isa} %endif Requires: jsoncpp-devel%{?_isa} # bz #1183210 + #1183530 -%if 0%{?fedora} >= 30 Requires: python%{python3_pkgversion}-devel -%else -Requires: python2-devel -%endif %description mpich-devel This provides the VTK header files required to compile C++ programs that @@ -358,21 +314,12 @@ use VTK to do 3D visualization. NOTE: The version in this package has been compiled with mpich support. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk-mpich Summary: Python 3 bindings for VTK with mpich Requires: vtk-mpich%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-vtk-mpich python 3 bindings for VTK with mpich. -%else -%package -n python2-vtk-mpich -Summary: Python 2 bindings for VTK with mpich -Requires: vtk-mpich%{?_isa} = %{version}-%{release} - -%description -n python2-vtk-mpich -python 2 bindings for VTK with mpich. -%endif %if %{with java} %package mpich-java @@ -390,21 +337,12 @@ Requires: vtk-mpich%{?_isa} = %{version}-%{release} %description mpich-qt Qt bindings for VTK with mpich. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk-mpich-qt Summary: Qt Python 3 bindings for VTK with mpich Requires: vtk-mpich%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-vtk-mpich-qt Qt Python 3 bindings for VTK with mpich. -%else -%package -n python2-vtk-mpich-qt -Summary: Qt Python 2 bindings for VTK with mpich -Requires: vtk-mpich%{?_isa} = %{version}-%{release} - -%description -n python2-vtk-mpich-qt -Qt Python 2 bindings for VTK with mpich. -%endif %endif %if %{with openmpi} @@ -460,11 +398,7 @@ Requires: qtwebkit-devel%{?_isa} %endif Requires: jsoncpp-devel%{?_isa} # bz #1183210 + #1183530 -%if 0%{?fedora} >= 30 Requires: python%{python3_pkgversion}-devel -%else -Requires: python2-devel -%endif %description openmpi-devel This provides the VTK header files required to compile C++ programs that @@ -472,21 +406,12 @@ use VTK to do 3D visualization. NOTE: The version in this package has been compiled with openmpi support. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk-openmpi Summary: Python 3 bindings for VTK with openmpi Requires: vtk-openmpi%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-vtk-openmpi Python 3 bindings for VTK with openmpi. -%else -%package -n python2-vtk-openmpi -Summary: Python 2 bindings for VTK with openmpi -Requires: vtk-openmpi%{?_isa} = %{version}-%{release} - -%description -n python2-vtk-openmpi -Python 2 bindings for VTK with openmpi. -%endif %if %{with java} %package openmpi-java @@ -504,21 +429,12 @@ Requires: vtk-openmpi%{?_isa} = %{version}-%{release} %description openmpi-qt Qt bindings for VTK with openmpi. -%if 0%{?fedora} >= 30 %package -n python%{python3_pkgversion}-vtk-openmpi-qt Summary: Qt Python 3 bindings for VTK with openmpi Requires: vtk-openmpi%{?_isa} = %{version}-%{release} %description -n python%{python3_pkgversion}-vtk-openmpi-qt Qt Python 3 bindings for VTK with openmpi. -%else -%package -n python2-vtk-openmpi-qt -Summary: Qt Python 2 bindings for VTK with openmpi -Requires: vtk-openmpi%{?_isa} = %{version}-%{release} - -%description -n python2-vtk-openmpi-qt -Qt Python 2 bindings for VTK with openmpi. -%endif %endif %package data @@ -550,9 +466,8 @@ programming languages. %setup -q -b 1 -n VTK-%{version} %patch0 -p1 -b .py38 %patch1 -p1 -b .proj6 +%patch2 -p1 -b .gcc10 %patch10 -p1 -b .riscv64 -%patch11 -p1 -b .gcc10multidef -%patch12 -p1 -b .gcc10visibility # Remove included thirdparty sources just to be sure # TODO - diy2 - not yet packaged # TODO - exodusII - not yet packaged @@ -599,11 +514,7 @@ export JAVA_TOOL_OPTIONS=-Xmx2048m -DVTK_INSTALL_INCLUDE_DIR:PATH=include/vtk \\\ -DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \\\ -DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/vtk \\\ -%if 0%{?fedora} >= 30 \ -DVTK_PYTHON_VERSION=3 \\\ -%else \ - -DVTK_PYTHON_VERSION=2 \\\ -%endif \ %if %{with qt5} \ -DVTK_INSTALL_QT_DIR:PATH=%{_lib}/qt5/plugins/designer \\\ %else \ @@ -820,6 +731,7 @@ cp -al build/ExternalData/* %{buildroot}%{_datadir}/vtkdata/ %check cd build cp %SOURCE2 . +%if %{with xdummy} if [ -x /usr/libexec/Xorg ]; then Xorg=/usr/libexec/Xorg else @@ -827,18 +739,14 @@ else fi $Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf -configdir . :99 & export DISPLAY=:99 +%endif ctest %{_smp_mflags} -V || : +%if %{with xdummy} kill %1 || : cat xorg.log - -%if 0%{?fedora} < 28 -%ldconfig_scriptlets -%ldconfig_scriptlets java -%ldconfig_scriptlets python2-vtk -%ldconfig_scriptlets python2-vtk-qt -%ldconfig_scriptlets qt %endif + %files -f build/libs.list %license Copyright.txt %doc README.md _docs/Wrapping @@ -852,17 +760,10 @@ cat xorg.log %{_libdir}/cmake/vtk/ %{_docdir}/vtk-8.2/ -%if 0%{?fedora} >= 30 %files -n python%{python3_pkgversion}-vtk %{python3_sitearch}/* %{_libdir}/*Python3?D.so.* %exclude %{_libdir}/*QtPython3?D.so.* -%else -%files -n python2-vtk -%{python2_sitearch}/* -%{_libdir}/*Python27D.so.* -%exclude %{_libdir}/*QtPython27D.so.* -%endif %{_bindir}/vtkpython %{_bindir}/vtkWrapPython %{_bindir}/vtkWrapPythonInit @@ -880,13 +781,8 @@ cat xorg.log %exclude %{_libdir}/*Python??D.so.* %{_libdir}/qt?/plugins/designer/libQVTKWidgetPlugin.so -%if 0%{?fedora} >= 30 %files -n python%{python3_pkgversion}-vtk-qt %{_libdir}/*QtPython3?D.so.* -%else -%files -n python2-vtk-qt -%{_libdir}/*QtPython27D.so.* -%endif %if %{with mpich} %files mpich -f build-mpich/libs.list @@ -901,15 +797,9 @@ cat xorg.log %{_libdir}/mpich/lib/cmake/ %{_libdir}/mpich/share/doc/vtk-8.2/ -%if 0%{?fedora} >= 30 %files -n python%{python3_pkgversion}-vtk-mpich %{_libdir}/mpich/lib/python%{python3_version}/ %{_libdir}/mpich/lib/*Python3?D.so.* -%else -%files -n python2-vtk-mpich -%{_libdir}/mpich/lib/python%{python2_version}/ -%{_libdir}/mpich/lib/*Python27D.so.* -%endif %exclude %{_libdir}/mpich/lib/*QtPython??D.so.* %{_libdir}/mpich/bin/pvtkpython %{_libdir}/mpich/bin/vtkpython @@ -929,13 +819,8 @@ cat xorg.log %exclude %{_libdir}/mpich/lib/*Python??D.so.* %{_libdir}/mpich/lib/qt?/ -%if 0%{fedora} >= 30 %files -n python%{python3_pkgversion}-vtk-mpich-qt %{_libdir}/mpich/lib/*QtPython3?D.so.* -%else -%files -n python2-vtk-mpich-qt -%{_libdir}/mpich/lib/*QtPython27D.so.* -%endif %endif %if %{with openmpi} @@ -952,15 +837,9 @@ cat xorg.log %{_libdir}/openmpi/share/doc/vtk-8.2/ -%if 0%{fedora} >= 30 %files -n python%{python3_pkgversion}-vtk-openmpi %{_libdir}/openmpi/lib/python%{python3_version}/ %{_libdir}/openmpi/lib/*Python3?D.so.* -%else -%files -n python2-vtk-openmpi -%{_libdir}/openmpi/lib/python%{python2_version}/ -%{_libdir}/openmpi/lib/*Python27D.so.* -%endif %exclude %{_libdir}/openmpi/lib/*QtPython??D.so.* %{_libdir}/openmpi/bin/pvtkpython %{_libdir}/openmpi/bin/vtkpython @@ -980,13 +859,8 @@ cat xorg.log %exclude %{_libdir}/openmpi/lib/*Python27D.so.* %{_libdir}/openmpi/lib/qt?/ -%if 0%{fedora} >= 30 %files -n python%{python3_pkgversion}-vtk-openmpi-qt %{_libdir}/openmpi/lib/*QtPython3?D.so.* -%else -%files -n python2-vtk-openmpi-qt -%{_libdir}/openmpi/lib/*QtPython27D.so.* -%endif %endif %files data @@ -999,10 +873,23 @@ cat xorg.log %changelog -* Sat Apr 25 2020 David Abdurachmanov - 8.2.0-13.0.riscv64 +* Tue Jul 07 2020 David Abdurachmanov - 8.2.0-13.0.riscv64 - Add support for RISC-V (riscv64) -- Fix GCC 10 compilation errors -- Add GCC 10 support in VTKGenerateExportHeader.cmake + +* Thu Jun 25 2020 Orion Poplawski - 8.2.0-17 +- Rebuild for hdf5 1.10.6 + +* Sat Jun 20 2020 Orion Poplawski - 8.2.0-16 +- Drop _python_bytecompile_extra, python2 conditionals + +* Sat May 30 2020 Björn Esser - 8.2.0-15 +- Rebuild (jsoncpp) + +* Wed May 27 2020 Orion Poplawski - 8.2.0-14 +- Add patch to fix building with GCC 10 (bz#1800240) + +* Tue May 26 2020 Miro Hrončok - 8.2.0-14 +- Rebuilt for Python 3.9 * Fri Jan 31 2020 Fedora Release Engineering - 8.2.0-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild