prewikka/master: Check libprelude and libpreludedb version, and require an upgrade if necessary.

[email protected]
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit 282809090aff18f93106158206dd1b222055b3ff
Author: Yoann Vandoorselaere <[email protected]>
Date:   Tue May 19 10:51:05 2009 +0200

    Check libprelude and libpreludedb version, and require an upgrade if necessary.
    
    If the installed libprelude or libpreludedb version is too old, Prewikka
    will require the user to upgrade. Currently, Prewikka depend on libpreludedb
    0.9.12, and libprelude 0.9.23 (unreleased yet).


========================================

 prewikka/Core.py |   17 ++++++++++++++++-
 setup.py         |    4 ++++
 2 files changed, 20 insertions(+), 1 deletions(-)

========================================

diff --git a/prewikka/Core.py b/prewikka/Core.py
index 5fea394..ed2f42c 100644
--- a/prewikka/Core.py
+++ b/prewikka/Core.py
@@ -18,7 +18,7 @@
 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
 import os, copy, time
-import preludedb, CheetahFilters
+import prelude, preludedb, CheetahFilters
 
 import prewikka.views
 from prewikka import view, Config, Log, Database, IDMEFDatabase, \
@@ -121,6 +121,15 @@ def get_core_from_config(path, threaded=False):
 
 
 class Core:
+    def _checkVersion(self):
+        self._prelude_version_error = None
+
+        if not prelude.prelude_check_version(siteconfig.libprelude_required_version):
+            self._prelude_version_error = "Prewikka %s require libprelude %s or higher" % (siteconfig.version, siteconfig.libprelude_required_version)
+
+        elif not preludedb.preludedb_check_version(siteconfig.libpreludedb_required_version):
+            self._prelude_version_error = "Prewikka %s require libpreludedb %s or higher" % (siteconfig.version, siteconfig.libpreludedb_required_version)
+
     def __init__(self, config=None):
         class Env: pass
         self._env = Env()
@@ -137,6 +146,8 @@ class Core:
 
         preludedb.preludedb_init()
 
+        self._checkVersion()
+
         self._database_schema_error = None
         try:
             self._initDatabase()
@@ -315,7 +326,11 @@ class Core:
         login = None
         view = None
         user = None
+
         try:
+            if self._prelude_version_error:
+                raise Error.PrewikkaUserError("Version Requirement error", self._prelude_version_error)
+
             if self._database_schema_error != None:
                 raise Error.PrewikkaUserError("Database error", self._database_schema_error)
 
diff --git a/setup.py b/setup.py
index 744228d..950bab8 100644
--- a/setup.py
+++ b/setup.py
@@ -37,6 +37,8 @@ from Cheetah.CheetahWrapper import CheetahWrapper
 
 
 PREWIKKA_VERSION = "0.9.14"
+LIBPRELUDE_REQUIRED_VERSION = "0.9.23"
+LIBPRELUDEDB_REQUIRED_VERSION = "0.9.12"
 
 from fnmatch import fnmatch
 from distutils.dep_util import newer
@@ -178,6 +180,8 @@ class my_install(install):
         print >> config, "locale_dir = '%s'" % os.path.abspath((self.prefix + "/share/locale"))
         print >> config, "conf_dir = '%s'" % os.path.abspath((self.conf_prefix))
         print >> config, "version = '%s'" % PREWIKKA_VERSION
+        print >> config, "libprelude_required_version = '%s'" % LIBPRELUDE_REQUIRED_VERSION
+        print >> config, "libpreludedb_required_version = '%s'" % LIBPRELUDEDB_REQUIRED_VERSION
         config.close()
             
     def run(self):
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.