diff --git a/docs/installation.md b/docs/installation.md index 30f5ac48..454b3b22 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -17,7 +17,7 @@ and the `python3-pyudev` package. To run the GUI, solaar also requires Gtk3, and its GObject Introspection bindings. The Debian/Ubuntu package names are `python3-gi` and `gir1.2-gtk-3.0`; -in Fedora you only need `python3-gobject`; +in Fedora you need `gtk3` and `python3-gobject`; if you're using another distribution the required packages are most likely named something similar. diff --git a/lib/solaar/gtk.py b/lib/solaar/gtk.py index 614e9b15..0d15f0e2 100755 --- a/lib/solaar/gtk.py +++ b/lib/solaar/gtk.py @@ -31,10 +31,12 @@ import solaar.cli as _cli # # -def _require(module, os_package): +def _require(module, os_package, gi=None, gi_package=None, gi_version=None): try: + if gi is not None: + gi.require_version(gi_package,gi_version) return importlib.import_module(module) - except ImportError: + except (ImportError, ValueError): import sys sys.exit("%s: missing required system package %s" % (NAME, os_package)) @@ -94,8 +96,7 @@ def main(): return _cli.run(args.action, args.hidraw_path) gi = _require('gi', 'python3-gi or python3-gobject') - gi.require_version('Gtk', '3.0') - _require('gi.repository.Gtk', 'gir1.2-gtk-3.0') + _require('gi.repository.Gtk', 'gir1.2-gtk-3.0', gi, 'Gtk', '3.0') try: import solaar.ui as ui