/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/version.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/version.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 925 by frank, Mon May 19 12:07:37 2003 UTC revision 2685 by dpinte, Wed Jun 28 15:34:04 2006 UTC
# Line 1  Line 1 
1  #!/usr/bin/env python  # Copyright (C) 2002, 2003, 2004 by Intevation GmbH
 #  
 # Copyright (C) 2002, 2003 by Intevation GmbH  
2  # Authors:  # Authors:
3  # Thomas Koester <[email protected]>  # Thomas Koester <[email protected]>
4  # Frank Koormann <[email protected]>  # Frank Koormann <[email protected]>
# Line 17  __version__ = "$Revision$" Line 15  __version__ = "$Revision$"
15  # $Id$  # $Id$
16    
17    
18  version = 'cvs'  # Note that this file defines the version number of Thuban for the about
19  append_date = 1  # dialog.
20    
21    # The thuban version string is build from two values, thuban_branch and
22    # thuban_release.  If release is "cvs" the code is from a non-released
23    # cvs version and the version string is built from the branch, the
24    # release and an approximation of the date (e.g. the most recent date of
25    # the ChangeLog file or the most recent modification time of a source
26    # file).  Otherwise the string is build from the branch and the release.
27    # E.g. given
28    #
29    #  thuban_branch = "1.1"
30    #  thuban_release = "svn"
31    #
32    # the version string will be "Thuban 1.1 svn-20040224" (obviously the
33    # actual date might differ :) ).  OTOH, given
34    #
35    #  thuban_branch = "1.0"
36    #  thuban_release = "1"
37    #
38    # the version string will be "Thuban 1.0.1"
39    #
40    
41    thuban_branch = "1.1"
42    thuban_release = "svn"
43    
44    
45    
46  import os, os.path  import sys, os, os.path
47  import time  import time
48    from string import split
49    
50    from Thuban import  _
51    from Thuban.Lib.version import make_tuple
52    
53  if __name__ == "__main__":  if __name__ == "__main__":
54      import sys      import sys
# Line 54  def get_changelog_date(): Line 80  def get_changelog_date():
80          file.close()          file.close()
81      except:      except:
82          return ""          return ""
83      return '\n  ChangeLog %s' % line.split(" ")[0]      return 'ChangeLog %s' % line.split(" ")[0]
84    
85    
86    #
87    # Fill in versions with the different versions of the libraries
88    # that Thuban is using or requires (only if those libraries are
89    # available.
90    #
91    
92    versions = {}
93    
94  if append_date:  if thuban_release == "svn":
95      version = '%s-%s' % (version, get_date('%Y%m%d'))      version = '%s %s-%s' % (thuban_branch, thuban_release, get_date('%Y%m%d'))
96  longversion = '%s%s' % (version, get_changelog_date())      longversion = '%s\n%s' % (version, get_changelog_date())
97  #longversion = 'Thuban Release Version 0.2'  else:
98        version = thuban_branch + "." + thuban_release
99        longversion = 'Release Version ' + version
100    
101    versions['thuban'] = version
102    versions['thuban-long'] = longversion
103    
104    # wxPython
105    from wxPython.wx import __version__ as wxPython_version
106    versions['wxPython'] = wxPython_version
107    versions['wxPython-tuple'] = make_tuple(wxPython_version)
108    
109    # Python
110    versions['python'] = "%d.%d.%d" % sys.version_info[:3]
111    versions['python-tuple'] = sys.version_info[:3]
112    
113    # PySQLite
114    try:
115        from pysqlite2 import dbapi2 as sqlite
116        versions['pysqlite'] = sqlite.version
117        versions['pysqlite-tuple'] = make_tuple(sqlite.version)
118    except ImportError:
119        import sqlite
120        versions['pysqlite'] = sqlite.version()
121        versions['pysqlite-tuple'] = make_tuple(sqlite.version())
122    
123    # SQLite
124    try:
125        from pysqlite2._sqlite import sqlite_version
126    except ImportError:
127        from _sqlite import sqlite_version
128    versions['sqlite'] = sqlite_version()
129    versions['sqlite-tuple'] = make_tuple(sqlite_version())
130    
131    # GDAL
132    from  Thuban.Model.resource import has_gdal_support
133    if has_gdal_support():
134        from gdalwarp import get_gdal_version
135        versions['gdal'] = get_gdal_version()
136        versions['gdal-tuple'] = make_tuple(get_gdal_version())
137    
138    from wxproj import get_proj_version, get_gtk_version, get_wx_version
139    
140    # GTK
141    gtk_ver = get_gtk_version()
142    if gtk_ver:
143        versions['gtk'] = ".".join(map(str, gtk_ver))
144        versions['gtk-tuple'] = gtk_ver
145    
146    # PROJ
147    proj_ver = get_proj_version()
148    if proj_ver:
149        versions['proj'] = ".".join(map(str, proj_ver))
150        versions['proj-tuple'] = proj_ver
151    
152    wxproj_wx_version = get_wx_version()
153    versions['wxproj-wx'] = ".".join(map(str, wxproj_wx_version))
154    versions['wxproj-wx-tuple'] = wxproj_wx_version
155    
156    
157    # psycopg/postgis
158    import Thuban.Model.postgisdb
159    if Thuban.Model.postgisdb.has_postgis_support():
160        v = Thuban.Model.postgisdb.psycopg_version()
161        versions['psycopg'] = v
162        versions['psycopg-tuple'] = make_tuple(v)
163    
164    def verify_versions():
165        """Verify that Thuban is using the correct versions of libraries.
166    
167        Returns a non-empty list of strings indicating which libraries
168        are wrong, or the empty list if everthing is ok.
169        """
170    
171        #
172        # The 'name' below must correspong to an mapping in 'versions'.
173        # There must also exist a 'name'-tuple mapping.
174        #
175        #         title           name       version
176        list = [["Python",      "python",   (2, 2, 1)],
177                ["wxPython",    "wxPython", (2, 4, 0)],
178                ["SQLite",      "sqlite",   (2, 8, 0)],
179                ["PySQLite",    "pysqlite", (0, 4, 1)],
180                ["PROJ",        "proj",     (4, 4, 5)],
181                ["GTK",         "gtk",      (1, 2, 3)],
182                ["GDAL",        "gdal",     (1, 1, 8)]]
183    
184        errors = []
185        for title, name, version in list:
186            tup = versions.get("%s-tuple" % name, None)
187            if tup and tup < version:
188                errors.append(_("%s %s < %s") % \
189                              (title, versions[name], ".".join(map(str, version))))
190    
191        # Check whether the wxWindows version of wxPython and thuban's
192        # wxproj module match.  If they don't match, segfaults are likely.
193        if versions["wxproj-wx-tuple"] != versions["wxPython-tuple"][:3]:
194            errors.append(_("Thuban was compiled with wx %(wxproj-wx)s"
195                            " but wxPython is %(wxPython)s")
196                          % versions)
197    
198        return errors
199    
200  if __name__ == "__main__":  if __name__ == "__main__":
201      print longversion      print longversion
202    

Legend:
Removed from v.925  
changed lines
  Added in v.2685

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26