chore(linux): Change order of initialization

If we want to log messages we need to start DBus after we initialized
logging.
This commit is contained in:
Eberhard Beilharz 2024-03-20 11:18:28 +01:00
parent 639ac25397
commit 37024fa832
No known key found for this signature in database
GPG key ID: E9140597606020D3
7 changed files with 36 additions and 29 deletions

View file

@ -51,6 +51,30 @@ def initialize_sentry():
SentryErrorHandling().initialize_sentry()
def verify_dbus_running():
if (not 'DBUS_SESSION_BUS_ADDRESS' in os.environ or
not 'DBUS_SESSION_BUS_PID' in os.environ):
try:
# Seems dbus isn't running for the current user. Try to start it
# and set these environment variables
logging.info('Starting dbus with dbus-launch')
stdout = subprocess.run(
('dbus-launch', '--exit-with-session'),
stdout=subprocess.PIPE, check=False).stdout
lines = stdout.decode('utf-8').splitlines()
for line in lines:
equal_sign = line.find('=')
if equal_sign <= 0:
logging.warning('Got unexpected line from dbus-launch: %s', line)
continue
name = line[:equal_sign]
value = line[equal_sign+1:]
logging.debug('Setting environment %s=%s', name, value)
os.environ[name] = value
except Exception as e:
logging.error('Starting dbus-launch failed with %s', e)
def add_standard_arguments(parser):
if __pkgversion__:
versionstring = f"{__versionwithtag__} (package version {__pkgversion__})"
@ -79,26 +103,3 @@ KeymanApiUrl = 'https://api.keyman.com'
# There's no staging site for downloads
KeymanDownloadsUrl = 'https://downloads.keyman.com'
if (not 'DBUS_SESSION_BUS_ADDRESS' in os.environ or
not 'DBUS_SESSION_BUS_PID' in os.environ):
try:
# Seems dbus isn't running for the current user. Try to start it
# and set these environment variables
logging.info('Starting dbus with dbus-launch')
stdout = subprocess.run(
('dbus-launch', '--exit-with-session'),
stdout=subprocess.PIPE, check=False).stdout
lines = stdout.decode('utf-8').splitlines()
for line in lines:
equal_sign = line.find('=')
if equal_sign <= 0:
logging.warning('Got unexpected line from dbus-launch: %s', line)
continue
name = line[:equal_sign]
value = line[equal_sign+1:]
logging.debug('Setting environment %s=%s', name, value)
os.environ[name] = value
except Exception as e:
logging.error('Starting dbus-launch failed with %s', e)

View file

@ -9,7 +9,7 @@ gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from keyman_config import __versionwithtag__, __pkgversion__, add_standard_arguments, initialize_logging, initialize_sentry
from keyman_config import __versionwithtag__, __pkgversion__, add_standard_arguments, initialize_logging, initialize_sentry, verify_dbus_running
from keyman_config.handle_install import download_and_install_package
from keyman_config.ibus_util import verify_ibus_daemon
from keyman_config.view_installed import ViewInstalledWindow
@ -40,6 +40,7 @@ if __name__ == '__main__':
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
logging.info('Keyman version %s %s', __versionwithtag__, __pkgversion__)

View file

@ -5,7 +5,7 @@ import logging
import os
import sys
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry, verify_dbus_running
from keyman_config.kvk2ldml import parse_kvk_file, print_kvk, convert_ldml, output_ldml
@ -23,6 +23,7 @@ def main():
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
name, ext = os.path.splitext(args.kvkfile)
# Check if input file extension is kvk

View file

@ -3,7 +3,7 @@
import argparse
import os
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry, verify_dbus_running
from keyman_config.get_kmp import get_kmp, keyman_cache_dir
@ -16,6 +16,7 @@ def main():
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
get_kmp(args.id)
if os.path.exists(os.path.join(keyman_cache_dir(), 'kmpdirlist')):

View file

@ -11,7 +11,7 @@ import time
from pkg_resources import parse_version
from zipfile import is_zipfile
from keyman_config import KeymanApiUrl, add_standard_arguments, initialize_logging, initialize_sentry, secure_lookup
from keyman_config import KeymanApiUrl, add_standard_arguments, initialize_logging, initialize_sentry, secure_lookup, verify_dbus_running
from keyman_config.get_kmp import get_keyboard_data, get_kmp, keyman_cache_dir
from keyman_config.install_kmp import extract_kmp, InstallError, InstallStatus, install_kmp
from keyman_config.kmpmetadata import get_metadata
@ -124,6 +124,7 @@ def main():
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
if args.package and args.file:
parser.print_usage()

View file

@ -3,7 +3,7 @@
import argparse
import os
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry, verify_dbus_running
from keyman_config.get_kmp import get_keyman_dir, InstallLocation
from keyman_config.list_installed_kmp import get_installed_kmp
@ -20,6 +20,7 @@ def main():
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
_all = not args.user and not args.shared and not args.os
if args.user or _all:

View file

@ -2,7 +2,7 @@
import argparse
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry
from keyman_config import add_standard_arguments, initialize_logging, initialize_sentry, verify_dbus_running
from keyman_config.uninstall_kmp import uninstall_kmp
def main():
@ -15,6 +15,7 @@ def main():
initialize_logging(args)
initialize_sentry()
verify_dbus_running()
uninstall_kmp(args.id, args.shared)