Fix for bug #129173, reported by Skip Montanaro:
   Check for the two possible headers for Expat, expat.h and xmlparse.h,
   and only compile the pyexpat module if one of them is found.
diff --git a/setup.py b/setup.py
index 646dd43..44af338 100644
--- a/setup.py
+++ b/setup.py
@@ -68,6 +68,7 @@
         # a fixed list
         lib_dirs = self.compiler.library_dirs[:]
         lib_dirs += ['/lib', '/usr/lib', '/usr/local/lib']
+        inc_dirs = ['/usr/include', '/usr/local/include'] + self.include_dirs
         exts = []
 
         # XXX Omitted modules: gl, pure, dl, SGI-specific modules
@@ -232,8 +233,7 @@
         # Setup.config before enabling it here.
 
         if (self.compiler.find_library_file(lib_dirs, 'db') and
-            find_file(['/usr/include', '/usr/local/include'] + self.include_dirs,
-                      'db_185.h') ):
+            find_file(inc_dirs, 'db_185.h') ):
             exts.append( Extension('bsddb', ['bsddbmodule.c'],
                                    libraries = ['db'] ) )
 
@@ -340,8 +340,15 @@
         #    ar cr libexpat.a xmltok/*.o xmlparse/*.o
         #
         if (self.compiler.find_library_file(lib_dirs, 'expat')):
-            exts.append( Extension('pyexpat', ['pyexpat.c'],
-                                   libraries = ['expat']) )
+            defs = None
+            if find_file(inc_dirs, 'expat.h'):
+                defs = [('HAVE_EXPAT_H', 1)]
+            elif find_file(inc_dirs, 'xmlparse.h'):
+                defs = []
+            if defs is not None:
+                exts.append( Extension('pyexpat', ['pyexpat.c'],
+                                       define_macros = defs,
+                                       libraries = ['expat']) )
 
         # Platform-specific libraries
         plat = sys.platform