diff options
author | Florian Bruhin <git@the-compiler.org> | 2017-07-27 09:22:12 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2017-10-04 06:54:08 +0200 |
commit | 48023e7b1d2a563b833c5904da5a2759aae380c9 (patch) | |
tree | ab18d81f0542e6fec054b96d29ad9dfdff7e64fb | |
parent | 74e1b1ec26594f444d26e42450b7a43afe76d22a (diff) | |
download | qutebrowser-48023e7b1d2a563b833c5904da5a2759aae380c9.tar.gz qutebrowser-48023e7b1d2a563b833c5904da5a2759aae380c9.zip |
Use ctypes instead of PyOpenGL for QtWebEngine Nvidia workaround
Normally a dependency change like this wouldn't appear on a stable branch, but
it looks like multiple people have issues with importing PyOpenGL:
Traceback (most recent call last):
...
File "/usr/lib/python3/dist-packages/qutebrowser/browser/webengine/webenginesettings.py", line 208, in init
from OpenGL import GL # pylint: disable=unused-variable
File "/usr/lib/python3/dist-packages/OpenGL/GL/__init__.py", line 3, in <module>
from OpenGL.GL.VERSION.GL_1_1 import *
File "/usr/lib/python3/dist-packages/OpenGL/GL/VERSION/GL_1_1.py", line 10, in <module>
from OpenGL import platform, constants, constant, arrays
File "/usr/lib/python3/dist-packages/OpenGL/arrays/__init__.py", line 22, in <module>
formathandler.FormatHandler.loadAll()
File "/usr/lib/python3/dist-packages/OpenGL/arrays/formathandler.py", line 28, in loadAll
cls.loadPlugin( entrypoint )
File "/usr/lib/python3/dist-packages/OpenGL/arrays/formathandler.py", line 35, in loadPlugin
plugin_class = entrypoint.load()
File "/usr/lib/python3/dist-packages/OpenGL/plugins.py", line 14, in load
return importByName( self.import_path )
File "/usr/lib/python3/dist-packages/OpenGL/plugins.py", line 28, in importByName
module = __import__( ".".join(moduleName), {}, {}, moduleName)
File "/usr/lib/python3/dist-packages/OpenGL/arrays/vbo.py", line 430, in <module>
def mapVBO( vbo, access=GL.GL_READ_WRITE ):
AttributeError: module 'OpenGL.GL' has no attribute 'GL_READ_WRITE'
Fixes #2821
(cherry picked from commit a942613d7fea62932de3ced4008ebbb8ae190bc4)
-rw-r--r-- | README.asciidoc | 1 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginesettings.py | 8 | ||||
-rw-r--r-- | qutebrowser/misc/earlyinit.py | 6 | ||||
-rw-r--r-- | qutebrowser/utils/version.py | 1 | ||||
-rw-r--r-- | requirements.txt | 1 | ||||
-rw-r--r-- | tests/unit/utils/test_version.py | 1 |
6 files changed, 8 insertions, 10 deletions
diff --git a/README.asciidoc b/README.asciidoc index fff189cee..689d66cca 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -108,7 +108,6 @@ The following software and libraries are required to run qutebrowser: * http://jinja.pocoo.org/[jinja2] * http://pygments.org/[pygments] * http://pyyaml.org/wiki/PyYAML[PyYAML] -* http://pyopengl.sourceforge.net/[PyOpenGL] when using QtWebEngine The following libraries are optional and provide a better user experience: diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 27ef60cb6..1148dbad9 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -28,6 +28,9 @@ Module attributes: """ import os +import sys +import ctypes +import ctypes.util from PyQt5.QtGui import QFont from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile, @@ -199,6 +202,11 @@ def init(args): if args.enable_webengine_inspector: os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = str(utils.random_port()) + # WORKAROUND for + # https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826 + if sys.platform == 'linux': + ctypes.CDLL(ctypes.util.find_library("GL"), mode=ctypes.RTLD_GLOBAL) + _init_profiles() # We need to do this here as a WORKAROUND for diff --git a/qutebrowser/misc/earlyinit.py b/qutebrowser/misc/earlyinit.py index 59cf6a6bf..eac5c3d5d 100644 --- a/qutebrowser/misc/earlyinit.py +++ b/qutebrowser/misc/earlyinit.py @@ -343,12 +343,6 @@ def check_libraries(backend): modules['PyQt5.QtWebEngineWidgets'] = _missing_str("QtWebEngine", webengine=True) modules['PyQt5.QtOpenGL'] = _missing_str("PyQt5.QtOpenGL") - # Workaround for a black screen with some setups - # https://github.com/spyder-ide/spyder/issues/3226 - if not os.environ.get('QUTE_NO_OPENGL_WORKAROUND'): - # Hide "No OpenGL_accelerate module loaded: ..." message - logging.getLogger('OpenGL.acceleratesupport').propagate = False - modules['OpenGL.GL'] = _missing_str("PyOpenGL") else: assert backend == 'webkit' modules['PyQt5.QtWebKit'] = _missing_str("PyQt5.QtWebKit") diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index 3d712e57a..0aeae183e 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -191,7 +191,6 @@ def _module_versions(): ('yaml', ['__version__']), ('cssutils', ['__version__']), ('typing', []), - ('OpenGL', ['__version__']), ('PyQt5.QtWebEngineWidgets', []), ('PyQt5.QtWebKitWidgets', []), ]) diff --git a/requirements.txt b/requirements.txt index cbf9ba407..b2cc93c1f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,3 @@ MarkupSafe==1.0 Pygments==2.2.0 pyPEG2==2.15.2 PyYAML==3.12 -PyOpenGL==3.1.0 diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py index c9c97c6b8..90e152a4c 100644 --- a/tests/unit/utils/test_version.py +++ b/tests/unit/utils/test_version.py @@ -505,7 +505,6 @@ class ImportFake: 'typing': True, 'PyQt5.QtWebEngineWidgets': True, 'PyQt5.QtWebKitWidgets': True, - 'OpenGL': True, } self.version_attribute = '__version__' self.version = '1.2.3' |