]> granicus.if.org Git - python/commitdiff
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
authorGuido van Rossum <guido@python.org>
Sun, 15 Apr 2001 15:16:12 +0000 (15:16 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 15 Apr 2001 15:16:12 +0000 (15:16 +0000)
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.

setup.py

index d99f43dd7f2b1e94584be989e4dca8f613e04c22..5fc981cb0c2d9c300ad8c60f137cb87b6a1ee5da 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -449,9 +449,23 @@ class PyBuildExt(build_ext):
         # 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
         #