Commits

Anonymous committed c497fa3

Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
later. This assumes that zlib.h has a line of the form

#define ZLIB_VERSION "1.1.3"

This solves the problem where a zlib installation is found but it is
an older version -- this would break the build, while a better
solution is to simply ignore that zlib installation.

Comments (0)

Files changed (1)

         # Andrew Kuchling's zlib module.
         # This require zlib 1.1.3 (or later).
         # See http://www.cdrom.com/pub/infozip/zlib/
-        if (self.compiler.find_library_file(lib_dirs, 'z')):
-            exts.append( Extension('zlib', ['zlibmodule.c'],
-                                   libraries = ['z']) )
+        zlib_inc = find_file('zlib.h', [], inc_dirs)
+        if zlib_inc is not None:
+            zlib_h = zlib_inc[0] + '/zlib.h'
+            version = '"0.0.0"'
+            version_req = '"1.1.3"'
+            fp = open(zlib_h)
+            while 1:
+                line = fp.readline()
+                if not line:
+                    break
+                if line.find('#define ZLIB_VERSION', 0) == 0:
+                    version = line.split()[2]
+                    break
+            if version >= version_req:
+                if (self.compiler.find_library_file(lib_dirs, 'z')):
+                    exts.append( Extension('zlib', ['zlibmodule.c'],
+                                           libraries = ['z']) )
 
         # Interface to the Expat XML parser
         #