Hi,
After going over the review by danielsh and rdonch, I've made a
new patch.
Edmund
Log:
[[[
Fixed gen_win.py such that it checks for the presence of the
Serf library (which it does prior to this patch) and also
outputs the library version (which is what this patch does).
It also checks if the serf version >= 0.3.0. If not, ra_serf
is not built.
* build/generator/gen_win.py
(_get_serf_version): New function to return the serf library
version.
(_find_serf): Added a version check and if a valid version
is found, ra_serf is built; otherwise, it isn't. If the
version cannot be determined, ra_serf will still be built.
The user is the informed of the results.
Patch by: Edmund Wong <ed at kdtc.net>
Suggested by: danielsh
Review by: arfrever
lgo
rhuijben
danielsh
rdonch
]]]
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2394412
Index: build/generator/gen_win.py
===================================================================
--- build/generator/gen_win.py (revision 39236)
+++ build/generator/gen_win.py (working copy)
@@ -1318,6 +1318,32 @@
sys.stderr.write(msg)
+ def _get_serf_version(self):
+ "Retrieves the serf version from serf.h"
+
+ ver_maj = -1
+ ver_min = -1
+ ver_patch = -1
+
+ if self.serf_path and os.path.exists(self.serf_path):
+ if (os.path.exists(os.path.join(self.serf_path, 'serf.h'))):
+ fp = open(os.path.join(self.serf_path, 'serf.h'))
+ txt = fp.read()
+ maj_t = re.compile(r'SERF_MAJOR_VERSION\s+(\d+)')
+ min_t = re.compile(r'SERF_MINOR_VERSION\s+(\d+)')
+ patch_t = re.compile(r'SERF_PATCH_VERSION\s+(\d+)')
+ ver_maj_re = maj_t.search(txt)
+ ver_min_re = min_t.search(txt)
+ ver_patch_re = patch_t.search(txt)
+ if ver_maj_re:
+ ver_maj = int(ver_maj_re.groups()[0])
+ if ver_min_re:
+ ver_min = int(ver_min_re.groups()[0])
+ if ver_patch_re:
+ ver_patch = int(ver_patch_re.groups()[0])
+
+ return (ver_maj, ver_min, ver_patch)
+
def _find_serf(self):
"Check if serf and its dependencies are available"
@@ -1325,6 +1351,21 @@
if self.serf_path and os.path.exists(self.serf_path):
if self.openssl_path and os.path.exists(self.openssl_path):
self.serf_lib = 'serf'
+ version = self._get_serf_version()
+ if version[0] != -1:
+ self.serf_ver = str(version[0]) +"."+str(version[1]) + "." + \
+ str(version[2])
+ if version < 030:
+ sys.stderr.write('Serf version >= 0.3.0 required. Found %s' \
+ % self.serf_ver)
+ self.sef_lib = None
+ msg = 'Unsupported Serf version found. ra_serf will not be built.\n'
+ else:
+ msg = 'Found serf version %s\n' % self.serf_ver
+ else:
+ msg = 'Unknown serf version found; but, will try to build'+\
+ 'ra_serf.\n'
+ sys.stderr.write(msg)
else:
sys.stderr.write('openssl not found, ra_serf will not be built\n')
else:
Received on 2009-09-14 04:39:14 CEST