Bug 1413238

Summary: pyglet.window import failure
Product: [Fedora] Fedora Reporter: Zbigniew Jędrzejewski-Szmek <zbyszek>
Component: python-pygletAssignee: Petr Viktorin (pviktori) <pviktori>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: pviktori, python-sig
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: 2017-01-16 08:28:59 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 Zbigniew Jędrzejewski-Szmek 2017-01-14 01:27:25 UTC
Description of problem:
sympy tests are failing when they try to import pyglet.window. This is reproduced by the following simplified test case:
$ xvfb-run -a python -c 'import pyglet.window'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/pyglet/window/__init__.py", line 1817, in <module>
    gl._create_shadow_window()
  File "/usr/lib/python2.7/site-packages/pyglet/gl/__init__.py", line 205, in _create_shadow_window
    _shadow_window = Window(width=1, height=1, visible=False)
  File "/usr/lib/python2.7/site-packages/pyglet/window/xlib/__init__.py", line 163, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/pyglet/window/__init__.py", line 510, in __init__
    raise NoSuchConfigException('No standard config is available.')
pyglet.window.NoSuchConfigException: No standard config is available.

I'm not really sure if this is a pyglet bug, feel free to reassign as appropriate. This appears only to happen when the software rasterizer
is used, on a "real" system, this command works just fine.

Version-Release number of selected component (if applicable):
python-pyglet-1.2.1-3.fc24.noarch

How reproducible:
100%

Comment 1 Zbigniew Jędrzejewski-Szmek 2017-01-14 19:19:15 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=904851#c5 seems to work-around the problem. Should xvfb-run do that by default?

Comment 2 Petr Viktorin (pviktori) 2017-01-16 08:28:59 UTC
Relevant quotes from that bug:

> If you don't specify, Xvfb starts at 8bpp, and there's no GLX support for 8bpp anymore.

> So apparently, `xvfb-run -s "-screen 0 640x480x24" glxinfo` runs fine, but doesn't work in mock.

---

The bug is in interaction between xvfb-run and GLX. The bug report there was closed "NOTABUG", and there's not much Pyglet can do about this, unforunately.

If you want to discuss changing xvfb-run defaults, I suggest filing a new bug: I don't think a Python backtrace would be useful to X devs.

*** This bug has been marked as a duplicate of bug 904851 ***