Bug 1765930

Summary: recent mesa / libglvnd changes break mutter + mutter328 builds
Product: [Fedora] Fedora Reporter: Fabio Valentini <decathorpe>
Component: mesaAssignee: Adam Jackson <ajax>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: ajax, bskeggs, caillon+fedoraproject, igor.raits, jglisse, john.j5live, lyude, rclark, rhughes, rstrode, sergio, tstellar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-02 11:04:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fabio Valentini 2019-10-27 14:06:19 UTC
mutter:

See: https://koschei.fedoraproject.org/package/mutter?collection=f32

../cogl/cogl/winsys/cogl-winsys-egl.c: In function '_cogl_winsys_display_setup':
../cogl/cogl/winsys/cogl-winsys-egl.c:465:23: error: 'CoglRendererEGL' {aka 'struct _CoglRendererEGL'} has no member named 'pf_eglBindWaylandDisplay'
  465 |       if (egl_renderer->pf_eglBindWaylandDisplay)
      |                       ^~
../cogl/cogl/winsys/cogl-winsys-egl.c:466:14: error: 'CoglRendererEGL' {aka 'struct _CoglRendererEGL'} has no member named 'pf_eglBindWaylandDisplay'
  466 |  egl_renderer->pf_eglBindWaylandDisplay (egl_renderer->edpy,
      |              ^~
../cogl/cogl/winsys/cogl-winsys-egl.c: In function '_cogl_egl_create_image':
../cogl/cogl/winsys/cogl-winsys-egl.c:900:17: error: 'EGL_WAYLAND_BUFFER_WL' undeclared (first use in this function)
  900 |   if (target == EGL_WAYLAND_BUFFER_WL)
      |                 ^~~~~~~~~~~~~~~~~~~~~



mutter328:

See: https://koschei.fedoraproject.org/package/mutter328?collection=f32

cogl-texture-2d.c  -fPIC -DPIC -o .libs/cogl-texture-2d.o
cogl-texture-2d.c: In function 'cogl_wayland_texture_2d_new_from_buffer':
cogl-texture-2d.c:394:11: warning: implicit declaration of function '_cogl_egl_query_wayland_buffer' [-Wimplicit-function-declaration]
  394 |       if (_cogl_egl_query_wayland_buffer (ctx,
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cogl-texture-2d.c:432:43: error: 'EGL_WAYLAND_BUFFER_WL' undeclared (first use in this function)
  432 |                                           EGL_WAYLAND_BUFFER_WL,
      |                                           ^~~~~~~~~~~~~~~~~~~~~
cogl-texture-2d.c:432:43: note: each undeclared identifier is reported only once for each function it appears in


Other packages might also be affected, similar to what happened here:
https://bugzilla.redhat.com/show_bug.cgi?id=1707777

Comment 1 Sergio Basto 2019-11-05 18:18:15 UTC
Hi, For the record also breaks VirtualBox builds [1] 
Thanks
 
[1]
In file included from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/glx.c:32:
/builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/dri_glx.h:117:35: error: conflicting types for 'glXQueryGLXPbufferSGIX'
  117 | extern DECLEXPORT(int) VBOXGLXTAG(glXQueryGLXPbufferSGIX)
      |                                   ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/dri_glx.h:34:27: note: in definition of macro 'VBOXGLXTAG'
   34 |  #define VBOXGLXTAG(Func) Func
      |                           ^~~~
In file included from /usr/include/GL/glx.h:333,
                 from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/GuestHost/OpenGL/include/chromium.h:99,
                 from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/glx.c:26:
/usr/include/GL/glxext.h:852:6: note: previous declaration of 'glXQueryGLXPbufferSGIX' was here
  852 | void glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
      |      ^~~~~~~~~~~~~~~~~~~~~~
In file included from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/glx.c:32:
/builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/glx.c:766:28: error: conflicting types for 'glXQueryGLXPbufferSGIX'
  766 | DECLEXPORT(int) VBOXGLXTAG(glXQueryGLXPbufferSGIX)(Display *dpy, GLXPbuffer pbuf,
      |                            ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/dri_glx.h:34:27: note: in definition of macro 'VBOXGLXTAG'
   34 |  #define VBOXGLXTAG(Func) Func
      |                           ^~~~
In file included from /usr/include/GL/glx.h:333,
                 from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/GuestHost/OpenGL/include/chromium.h:99,
                 from /builddir/build/BUILD/VirtualBox-6.0.14/src/VBox/Additions/common/crOpenGL/glx.c:26:
/usr/include/GL/glxext.h:852:6: note: previous declaration of 'glXQueryGLXPbufferSGIX' was here
  852 | void glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
      |      ^~~~~~~~~~~~~~~~~~~~~~

Comment 2 Fabio Valentini 2020-02-02 11:04:04 UTC
Worked around "downstream" by including

#include <EGL/eglmesaext.h

in the appropriate source files.