summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-07-27 09:22:12 +0200
committerFlorian Bruhin <git@the-compiler.org>2017-10-04 06:54:08 +0200
commit48023e7b1d2a563b833c5904da5a2759aae380c9 (patch)
treeab18d81f0542e6fec054b96d29ad9dfdff7e64fb
parent74e1b1ec26594f444d26e42450b7a43afe76d22a (diff)
downloadqutebrowser-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.asciidoc1
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py8
-rw-r--r--qutebrowser/misc/earlyinit.py6
-rw-r--r--qutebrowser/utils/version.py1
-rw-r--r--requirements.txt1
-rw-r--r--tests/unit/utils/test_version.py1
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'