changeset 29bba5077cf9 in /home/hg/repos/gajim

author: Linus Heckemann <[email protected]>
branches: 
details:http://hg.gajim.org/gajim?cmd=changeset;node=29bba5077cf9
description: Fix version comparisons in plugin loader, warn about incompatible 
plugins

diffstat:

 src/plugins/pluginmanager.py |  41 +++++++++++++++++++++--------------------
 1 files changed, 21 insertions(+), 20 deletions(-)

diffs (60 lines):

diff -r 41bf4a5998d3 -r 29bba5077cf9 src/plugins/pluginmanager.py
--- a/src/plugins/pluginmanager.py      Sat Aug 06 23:46:57 2016 +0200
+++ b/src/plugins/pluginmanager.py      Sun Aug 07 11:53:49 2016 +0100
@@ -32,6 +32,7 @@
 import zipfile
 from shutil import rmtree
 import configparser
+import pkg_resources
 
 from common import gajim
 from common import nec
@@ -450,28 +451,28 @@
             conf.read_file(conf_file)
             conf_file.close()
 
-            try:
-                min_v = conf.get('info', 'min_gajim_version')
-            except Exception:
-                min_v = None
-            try:
-                max_v = conf.get('info', 'max_gajim_version')
-            except Exception:
-                max_v = None
+            min_v = conf.get('info', 'min_gajim_version', fallback=None)
+            max_v = conf.get('info', 'max_gajim_version', fallback=None)
 
-            gajim_v = gajim.config.get('version')
-            gajim_v = gajim_v.split('-', 1)[0]
-            gajim_v = gajim_v.split('.')
+            gajim_v = pkg_resources.parse_version(gajim.config.get('version'))
 
-            if min_v:
-                min_v = min_v.split('.')
-                if gajim_v < min_v:
-                    continue
-            if max_v:
-                max_v = max_v.split('.')
-                if gajim_v > max_v:
-                    continue
-
+            if min_v and gajim_v < pkg_resources.parse_version(min_v):
+                log.warning(('Plugin {plugin} not loaded, newer version of'
+                             'gajim required: {gajim_v} < {min_v}').format(
+                                 plugin=elem_name,
+                                 gajim_v=gajim_v,
+                                 min_v=min_v
+                           ))
+                continue
+            if max_v and gajim_v > pkg_resources.parse_version(max_v):
+                log.warning(('Plugin {plugin} not loaded, plugin incompatible '
+                             'with current version of gajim: '
+                             '{gajim_v} > {max_v}').format(
+                                 plugin=elem_name,
+                                 gajim_v=gajim_v,
+                                 max_v=max_v
+                           ))
+                continue
 
             module = None
 
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to