summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2015-08-05 19:17:43 -0700
committerIvan Alejandro <ivanalejandro0@gmail.com>2015-08-07 19:02:24 -0300
commitf220d32702eddbd18be167b2742bb60043f60a45 (patch)
tree7fcc4cfdfc55b23a507f767e2ea0e1ed1c5403c0 /src
parent154109b9b08a782e2a7f6b6dddbe33e576b2b8a0 (diff)
[bug] workaround wrong qtplugins path rewritten in the libs
this is a bug in macholib, there's a missing letter in the plugins path, so unless we fix this they cannot be loaded from the bundle. See: https://bitbucket.org/pydica/pyside-setup/commits/4b8be97e5a00b577fe30ce9aa7e5723ff2a66f94 Quoting from http://code.activestate.com/lists/pythonmac-sig/23278/: """ The problem might be this line: @rpath/Contents/mageformats/libqtiff.dylib The "i" from "imageformats" is missing! This _might_ be related to the unusual case that "libqtiff" has no path at all, or something else is funny, and we end up with a name that will not be found at all. Then the loader finds the plugin in the installed Qt, which causes it to load everything again from there. """
Diffstat (limited to 'src')
-rw-r--r--src/leap/bitmask/app.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/leap/bitmask/app.py b/src/leap/bitmask/app.py
index be1fc424..a2e2aa1a 100644
--- a/src/leap/bitmask/app.py
+++ b/src/leap/bitmask/app.py
@@ -60,7 +60,7 @@ from leap.bitmask.frontend_app import run_frontend
from leap.bitmask.logs.utils import get_logger
from leap.bitmask.platform_init.locks import we_are_the_one_and_only
from leap.bitmask.services.mail import plumber
-from leap.bitmask.util import leap_argparse, flags_to_dict
+from leap.bitmask.util import leap_argparse, flags_to_dict, here
from leap.bitmask.util.requirement_checker import check_requirements
from leap.mail import __version__ as MAIL_VERSION
@@ -68,7 +68,6 @@ from leap.mail import __version__ as MAIL_VERSION
import codecs
codecs.register(lambda name: codecs.lookup('utf-8')
if name == 'cp65001' else None)
-
import psutil
@@ -134,6 +133,15 @@ def log_lsb_release_info(logger):
for line in distro_info:
logger.info(line)
+def fix_qtplugins_path():
+ # This is a small workaround for a bug in macholib, there is a slight typo
+ # in the path for the qt plugins that is added to the dynamic loader path
+ # in the libs.
+ if sys.platform in ('win32', 'darwin'):
+ from PySide import QtCore
+ plugins_path = os.path.join(os.path.dirname(here(QtCore)), 'plugins')
+ QtCore.QCoreApplication.setLibraryPaths([plugins_path])
+
def start_app():
"""
@@ -200,7 +208,6 @@ def start_app():
logger.info('leap.mail version %s' % MAIL_VERSION)
log_lsb_release_info(logger)
logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
-
logger.info('Starting app')
backend_running = BackendProxy().check_online()
@@ -220,6 +227,7 @@ def start_app():
backend_process.start()
backend_pid = backend_process.pid
+ fix_qtplugins_path()
run_frontend(options, flags_dict, backend_pid=backend_pid)