Master no longer compiling on Raspberry Pi

Bug #1863440 reported by Evan
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
Daniel Schürmann

Bug Description

The master does not compile on a Raspberry Pi anymore due to this commit:

https://github.com/mixxxdj/mixxx/commit/b7ce2776303716956926e2722e8861a7021c94d2

Specifically, QOpenGLFunctions_2_1 does not exist in QT on Raspbian because QT_OPENGL_ES_2 is defined.

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Download full text (7.2 KiB)

This is the failing output:

```
src/waveform/renderers/glvsynctestrenderer.h:11:40: error: expected class-name before ‘{’ token
         protected QOpenGLFunctions_2_1 {
                                        ^
In file included from src/waveform/renderers/glslwaveformrenderersignal.cpp:3:
src/waveform/renderers/glslwaveformrenderersignal.h:15:40: error: expected class-name before ‘{’ token
         protected QOpenGLFunctions_2_1 {
                                        ^
src/waveform/renderers/glvsynctestrenderer.cpp: In constructor ‘GLVSyncTestRenderer::GLVSyncTestRenderer(WaveformWidgetRenderer*)’:
src/waveform/renderers/glvsynctestrenderer.cpp:12:5: error: ‘initializeOpenGLFunctions’ was not declared in this scope
     initializeOpenGLFunctions();
     ^~~~~~~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp: In member function ‘virtual void GLVSyncTestRenderer::draw(QPainter*, QPaintEvent*)’:
src/waveform/renderers/glvsynctestrenderer.cpp:71:14: error: ‘GL_BLEND’ was not declared in this scope
     glEnable(GL_BLEND);
              ^~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp:71:5: error: ‘glEnable’ was not declared in this scope
     glEnable(GL_BLEND);
     ^~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp: In constructor ‘GLSLWaveformRendererSignal::GLSLWaveformRendererSignal(WaveformWidgetRenderer*, bool)’:
src/waveform/renderers/glslwaveformrenderersignal.cpp:18:5: error: ‘initializeOpenGLFunctions’ was not declared in this scope
     initializeOpenGLFunctions();
     ^~~~~~~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp:71:5: note: suggested alternative: ‘Paintable’
     glEnable(GL_BLEND);
     ^~~~~~~~
     Paintable
src/waveform/renderers/glvsynctestrenderer.cpp:72:17: error: ‘GL_SRC_ALPHA’ was not declared in this scope
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                 ^~~~~~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp:72:31: error: ‘GL_ONE_MINUS_SRC_ALPHA’ was not declared in this scope
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                               ^~~~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:18:5: note: suggested alternative: ‘QAbstractOpenGLFunctions’
     initializeOpenGLFunctions();
     ^~~~~~~~~~~~~~~~~~~~~~~~~
     QAbstractOpenGLFunctions
src/waveform/renderers/glvsynctestrenderer.cpp:72:5: error: ‘glBlendFunc’ was not declared in this scope
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     ^~~~~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp:76:18: error: ‘GL_PROJECTION’ was not declared in this scope
     glMatrixMode(GL_PROJECTION);
                  ^~~~~~~~~~~~~
src/waveform/renderers/glvsynctestrenderer.cpp:76:5: error: ‘glMatrixMode’ was not declared in this scope
     glMatrixMode(GL_PROJECTION);
     ^~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp: In member function ‘void GLSLWaveformRendererSignal::createGeometry()’:
src/waveform/renderers/glslwaveformrenderersignal.cpp:142:18: error: ‘GL_PROJECTION’ was not declared in this scope
     glMatrixMode(GL_PROJECTION);
                  ^~~~~~~~~~~~~
src/waveform/renderers/glvsync...

Read more...

Changed in mixxx:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Daniel Schürmann (daschuer)
milestone: none → 2.3.0
Revision history for this message
Daniel Schürmann (daschuer) wrote :
Revision history for this message
Railgun (railgun-michael) wrote :
Download full text (53.1 KiB)

i have download and test now to compile your branch mixxx-lp1863440
using "scons -j 2 opengles=1 staticlibs=1 optimize=legacy"

this is the result:

src/waveform/renderers/glslwaveformrenderersignal.cpp:13:1: error: ‘GLSLWaveformRendererSignal’ does not name a type; did you mean ‘WaveformRendererAbstract’?
 GLSLWaveformRendererSignal::GLSLWaveformRendererSignal(WaveformWidgetRenderer* waveformWidgetRenderer,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~
 WaveformRendererAbstract
src/waveform/renderers/glslwaveformrenderersignal.cpp:25:1: error: ‘GLSLWaveformRendererSignal’ does not name a type; did you mean ‘WaveformRendererAbstract’?
 GLSLWaveformRendererSignal::~GLSLWaveformRendererSignal() {
 ^~~~~~~~~~~~~~~~~~~~~~~~~~
 WaveformRendererAbstract
src/waveform/renderers/glslwaveformrenderersignal.cpp:35:6: error: ‘GLSLWaveformRendererSignal’ has not been declared
 void GLSLWaveformRendererSignal::debugClick() {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp: In function ‘void debugClick()’:
src/waveform/renderers/glslwaveformrenderersignal.cpp:36:5: error: ‘loadShaders’ was not declared in this scope
     loadShaders();
     ^~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:36:5: note: suggested alternative: ‘glIsShader’
     loadShaders();
     ^~~~~~~~~~~
     glIsShader
src/waveform/renderers/glslwaveformrenderersignal.cpp:37:5: error: ‘m_bDumpPng’ was not declared in this scope
     m_bDumpPng = true;
     ^~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp: At global scope:
src/waveform/renderers/glslwaveformrenderersignal.cpp:40:6: error: ‘GLSLWaveformRendererSignal’ has not been declared
 bool GLSLWaveformRendererSignal::loadShaders() {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp: In function ‘bool loadShaders()’:
src/waveform/renderers/glslwaveformrenderersignal.cpp:42:5: error: ‘m_shadersValid’ was not declared in this scope
     m_shadersValid = false;
     ^~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:44:9: error: ‘m_frameShaderProgram’ was not declared in this scope
     if (m_frameShaderProgram->isLinked()) {
         ^~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:44:9: note: suggested alternative: ‘glCreateShaderProgramv’
     if (m_frameShaderProgram->isLinked()) {
         ^~~~~~~~~~~~~~~~~~~~
         glCreateShaderProgramv
src/waveform/renderers/glslwaveformrenderersignal.cpp:48:5: error: ‘m_frameShaderProgram’ was not declared in this scope
     m_frameShaderProgram->removeAllShaders();
     ^~~~~~~~~~~~~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:48:5: note: suggested alternative: ‘glCreateShaderProgramv’
     m_frameShaderProgram->removeAllShaders();
     ^~~~~~~~~~~~~~~~~~~~
     glCreateShaderProgramv
src/waveform/renderers/glslwaveformrenderersignal.cpp:51:13: error: ‘QGLShader’ has not been declared
             QGLShader::Vertex, ":shaders/passthrough.vert")) {
             ^~~~~~~~~
src/waveform/renderers/glslwaveformrenderersignal.cpp:56:30: error: ‘m_rgbShader’ was not declared in this scope
     QString fragmentShader = m_rgbShader ?
                  ...

Revision history for this message
Daniel Schürmann (daschuer) wrote :

This almost the same posted here:
https://github.com/mixxxdj/mixxx/pull/2504#issuecomment-586807826
Unfortunately it is hard to debug it from remote. Do you have an idea why the
glswaveformrenderesignal.cpp is not skipped but it's *.h file is?

Which Qt version do you use?

Changed in mixxx:
status: In Progress → Fix Committed
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9887

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.