Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 712066 - dev-games/irrlicht-1.8.4-r1 : COpenGLExtensionHandler.h: fatal error: GL/glx.h: No such file or directory
Summary: dev-games/irrlicht-1.8.4-r1 : COpenGLExtensionHandler.h: fatal error: GL/glx....
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2020-03-10 15:59 UTC by Toralf Förster
Modified: 2020-04-13 15:55 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,15.83 KB, text/plain)
2020-03-10 15:59 UTC, Toralf Förster
Details
dev-games:irrlicht-1.8.4-r1:20200310-150749.log (dev-games:irrlicht-1.8.4-r1:20200310-150749.log,51.02 KB, text/plain)
2020-03-10 15:59 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,127.69 KB, text/plain)
2020-03-10 15:59 UTC, Toralf Förster
Details
environment (environment,55.73 KB, text/plain)
2020-03-10 15:59 UTC, Toralf Förster
Details
etc.portage.tbz2 (etc.portage.tbz2,13.57 KB, application/x-bzip)
2020-03-10 15:59 UTC, Toralf Förster
Details
logs.tbz2 (logs.tbz2,5.72 KB, application/x-bzip)
2020-03-10 15:59 UTC, Toralf Förster
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2020-03-10 15:59:03 UTC
In file included from COpenGLDriver.h:25,
                 from COpenGLDriver.cpp:5:
COpenGLExtensionHandler.h:64:11: fatal error: GL/glx.h: No such file or directory
   64 |  #include <GL/glx.h>
      |           ^~~~~~~~~~
compilation terminated.

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 17.1_no-multilib_hardened-libressl-20200307-230716

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-9.2.0 *

clang:
clang version 10.0.0 
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/10/bin
llvm:
10.0.0
Available Python interpreters, in order of preference:
  [1]   python3.8
  [2]   python3.7
  [3]   python3.6
  [4]   python2.7 (fallback)
Available Ruby profiles:
  [1]   ruby24 (with Rubygems)
  [2]   ruby25 (with Rubygems) *
Available Rust versions:
  [1]   rust-1.41.1 *


ghc:
The Glorious Glasgow Haskell Compilation System, version 8.0.2

repository:
==> /var/db/repos/gentoo/metadata/timestamp.chk <==
Tue, 10 Mar 2020 13:08:37 +0000

emerge -qpvO dev-games/irrlicht
[ebuild  N    ] dev-games/irrlicht-1.8.4-r1  USE="-debug -doc -static-libs"
Comment 1 Toralf Förster gentoo-dev 2020-03-10 15:59:06 UTC
Created attachment 617932 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2020-03-10 15:59:09 UTC
Created attachment 617934 [details]
dev-games:irrlicht-1.8.4-r1:20200310-150749.log
Comment 3 Toralf Förster gentoo-dev 2020-03-10 15:59:12 UTC
Created attachment 617936 [details]
emerge-history.txt
Comment 4 Toralf Förster gentoo-dev 2020-03-10 15:59:14 UTC
Created attachment 617938 [details]
environment
Comment 5 Toralf Förster gentoo-dev 2020-03-10 15:59:17 UTC
Created attachment 617940 [details]
etc.portage.tbz2
Comment 6 Toralf Förster gentoo-dev 2020-03-10 15:59:20 UTC
Created attachment 617942 [details]
logs.tbz2
Comment 7 William Breathitt Gray 2020-04-08 14:29:35 UTC
It looks like this is caused by a lack of the glx.h header file. I expect this file to be install as a consequence of the virtual/opengl dependency:

virtual/opengl -> media-libs/mesa -> media-libs/libglvnd

It looks like you have medialibs/libglvnd installed but no glx.h header file. This seems strange and I'm having trouble reproducing.

Would you be able to upload logs for a reinstall of media-libs/libglvnd? I'd like to see whether an attempt by portage is made to install the glx.h header file at least.
Comment 8 James Le Cuirot gentoo-dev 2020-04-08 14:38:58 UTC
I'll look into this myself later. glvnd is still supposed to be optional so you should avoid making it mandatory here.
Comment 9 Matt Turner gentoo-dev 2020-04-13 14:24:33 UTC
I don't understand how the system can be without glx.h. Toralf, can you confirm that your image does not have /usr/include/GL/glx.h?
Comment 10 Toralf Förster gentoo-dev 2020-04-13 14:42:31 UTC
(In reply to Matt Turner from comment #9)
> I don't understand how the system can be without glx.h. Toralf, can you
> confirm that your image does not have /usr/include/GL/glx.h?

yes, it does NOT have it.
What I found is:



tinderbox@mr-fox ~ $ chr img2/17.1_no-multilib_hardened-libressl-20200307-230716
mr-fox ~ # ls -l  /usr/include/GL/glx.h
ls: cannot access '/usr/include/GL/glx.h': No such file or directory
mr-fox ~ # find / -name glx.h
/usr/include/xcb/glx.h
/usr/include/epoxy/glx.h
Comment 11 Matt Turner gentoo-dev 2020-04-13 14:45:18 UTC
Thanks, very strange.

Can you provide a list of files installed by media-libs/libglvnd? i.e., `qlist libglvnd`. What USE flags is libglvnd built with?
Comment 12 Toralf Förster gentoo-dev 2020-04-13 15:29:07 UTC
mr-fox ~ # emerge -qpvO libglvnd
[ebuild   R   ] media-libs/libglvnd-1.3.1  USE="-X -test" 

mr-fox ~ # qlist libglvnd
/usr/lib64/pkgconfig/opengl.pc
/usr/lib64/pkgconfig/egl.pc
/usr/lib64/pkgconfig/glesv1_cm.pc
/usr/lib64/pkgconfig/glesv2.pc
/usr/lib64/pkgconfig/libglvnd.pc
/usr/lib64/libGLdispatch.so.0.0.0
/usr/lib64/libOpenGL.so.0.0.0
/usr/lib64/libEGL.so.1.1.0
/usr/lib64/libGLESv1_CM.so.1.2.0
/usr/lib64/libGLESv2.so.2.1.0
/usr/include/glvnd/GLdispatchABI.h
/usr/include/glvnd/libglxabi.h
/usr/include/glvnd/libeglabi.h
/usr/include/GL/gl.h
/usr/include/GL/glcorearb.h
/usr/include/GL/glext.h
/usr/include/KHR/khrplatform.h
/usr/include/GLES/egl.h
/usr/include/GLES/gl.h
/usr/include/GLES/glext.h
/usr/include/GLES/glplatform.h
/usr/include/GLES2/gl2ext.h
/usr/include/GLES2/gl2.h
/usr/include/GLES2/gl2platform.h
/usr/include/GLES3/gl31.h
/usr/include/GLES3/gl32.h
/usr/include/GLES3/gl3.h
/usr/include/GLES3/gl3ext.h
/usr/include/GLES3/gl3platform.h
/usr/include/EGL/egl.h
/usr/include/EGL/eglext.h
/usr/include/EGL/eglplatform.h
/usr/share/doc/libglvnd-1.3.1/README.md.bz2
/usr/lib64/libGLESv2.so.2
/usr/lib64/libGLESv1_CM.so.1
/usr/lib64/libEGL.so.1
/usr/lib64/libOpenGL.so.0
/usr/lib64/libGLdispatch.so.0
/usr/lib64/libGLdispatch.so
/usr/lib64/libOpenGL.so
/usr/lib64/libEGL.so
/usr/lib64/libGLESv1_CM.so
/usr/lib64/libGLESv2.so
Comment 13 Matt Turner gentoo-dev 2020-04-13 15:55:32 UTC
(In reply to Toralf Förster from comment #12)
> mr-fox ~ # emerge -qpvO libglvnd
> [ebuild   R   ] media-libs/libglvnd-1.3.1  USE="-X -test" 

Yep, libglvnd is built without X support, so no GLX. Now, how is this possible...?

irrlicht-1.8.4-r1 depends on virtual/opengl.

virtual/opengl depends on >=media-libs/mesa-9.1.6[X(+)].

media-libs/mesa[X] has depended on libglvnd[X] since:

commit 5182fbc94a91ce973c61791e48b1c3e828e4cfe7
Author: Matt Turner <mattst88@gentoo.org>
Date:   Sun Mar 8 11:49:43 2020 -0700

    media-libs/mesa: Depend on media-libs/libglvnd[X?]
    
    Since libglvnd provides gl.pc only with USE=X, and many packages depend
    on mesa[X], it makes sense to require matching USE=X. Suggested by
    Arfrever.

and I see that you have mesa-20.0.1, so I think your mesa is from the brief period of time when it didn't require libglvnd[X].

Updating Mesa and building libglvnd with USE=X will resolve this, and it's now impossible to hit this bug with current ebuilds.