Bug#893735: paraview FTBFS on armel/armhf: QVTKOpenGLWidget.cxx:458:3: error: 'QOpenGLFunctions_3_2_Core' was not declared in this scope

Adrian Bunk bunk at debian.org
Wed Mar 21 21:18:55 UTC 2018


Source: paraview
Version: 5.4.1+dfsg4-1
Severity: serious

https://buildd.debian.org/status/package.php?p=paraview&suite=sid

...
/<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx: In member function 'virtual void QVTKOpenGLWidget::paintGL()':
/<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx:458:3: error: 'QOpenGLFunctions_3_2_Core' was not declared in this scope
   QOpenGLFunctions_3_2_Core* f =
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx:458:3: note: suggested alternative: 'QOpenGLFunctionsPrivate'
   QOpenGLFunctions_3_2_Core* f =
   ^~~~~~~~~~~~~~~~~~~~~~~~~
   QOpenGLFunctionsPrivate
/<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx:458:30: error: 'f' was not declared in this scope
   QOpenGLFunctions_3_2_Core* f =
                              ^
/<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx:459:83: error: no matching function for call to 'QOpenGLContext::versionFunctions<QOpenGLFunctions_3_2_Core>()'
     QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
                                                                                   ^
In file included from /usr/include/arm-linux-gnueabihf/qt5/QtGui/QOpenGLContext:1:0,
                 from /<<BUILDDIR>>/paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx:18:
/usr/include/arm-linux-gnueabihf/qt5/QtGui/qopenglcontext.h:193:11: note: candidate: template<class TYPE> TYPE* QOpenGLContext::versionFunctions() const
     TYPE *versionFunctions() const
           ^~~~~~~~~~~~~~~~
/usr/include/arm-linux-gnueabihf/qt5/QtGui/qopenglcontext.h:193:11: note:   template argument deduction/substitution failed:
VTK/GUISupport/Qt/CMakeFiles/vtkGUISupportQt.dir/build.make:453: recipe for target 'VTK/GUISupport/Qt/CMakeFiles/vtkGUISupportQt.dir/QVTKOpenGLWidget.cxx.o' failed
make[3]: *** [VTK/GUISupport/Qt/CMakeFiles/vtkGUISupportQt.dir/QVTKOpenGLWidget.cxx.o] Error 1


On armel/armhf (and on arm64 in Ubuntu) Qt is compiled for OpenGL ES
instead of full OpenGL.

This is caused by:
https://gitlab.kitware.com/vtk/vtk/commit/53c566782950cd94ccd877cb906607e4cc33e1f7

The following fixes the build:

--- paraview-5.4.1+dfsg4.orig/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx
+++ paraview-5.4.1+dfsg4/VTK/GUISupport/Qt/QVTKOpenGLWidget.cxx
@@ -19,7 +19,7 @@
 #include <QOpenGLDebugLogger>
 #include <QOpenGLFramebufferObject>
 #include <QOpenGLFunctions>
-#include <QOpenGLFunctions_3_2_Core>
+//#include <QOpenGLFunctions_3_2_Core>
 #include <QOpenGLTexture>
 #include <QPointer>
 #include <QScopedValueRollback>
@@ -453,6 +453,7 @@ void QVTKOpenGLWidget::paintGL()
   // before proceeding with blit-ing.
   this->makeCurrent();
 
+#if 0
   // blit from this->FBO to QOpenGLWidget's FBO.
   vtkQVTKOpenGLWidgetDebugMacro("paintGL::blit-to-defaultFBO");
   QOpenGLFunctions_3_2_Core* f =
@@ -485,6 +486,7 @@ void QVTKOpenGLWidget::paintGL()
     f->glColorMask(colorMask[0], colorMask[1], colorMask[2], colorMask[3]);
     f->glClearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]);
   }
+#endif  /* 0 */
 }
 
 //-----------------------------------------------------------------------------


This is obviously not a patch that should be applied,
it serves only to show that it is really just a small piece
of recently added code that prevents compilation here.

If possible, this should be fixed.


In case fixing is not possible or desirable, please:
- change the build dependency from libqt5opengl5-dev
  to libqt5opengl5-desktop-dev, and
- file a removal bug for the old armel+armhf binaries
  against ftp.debian.org



More information about the debian-science-maintainers mailing list