automake: handle expat version pre 2.1
authorEmil Velikov <emil.l.velikov@gmail.com>
Wed, 30 Oct 2013 00:03:43 +0000 (00:03 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 30 Oct 2013 22:05:42 +0000 (22:05 +0000)
Commit aec20d66d9d13e0acd6a7199b63e1383e1e9900a
(automake: properly handle non-default expat installation),
assumed that up-to date distributions use a recent version
of expat that handles security vunerabilities CVE-2012-1147
and CVE-2012-1148. Seems like this is not always the case
and they prefer to backport only the fix, rather than use
the updated library.

This commit adds a default case -lexpat whenever expat is
not found, while properly handling expat.pc if present.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71022
Reported-By: Bryce Harrington <b.harrington@samsung.com>
Reported-By: Vinson Lee <vlee@freedesktop.org>
Tested-by: Bryce Harrington <b.harrington@samsung.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
configure.ac

index 8ba4feef3a176b04f9829b7e9d9b56405a28104f..f94c9b9791c09a6f167f686d7a8e476cbcec821c 100644 (file)
@@ -1005,9 +1005,14 @@ if test "x$enable_dri" = xyes; then
     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
 
     # Check for expat
-    PKG_CHECK_MODULES([EXPAT], [expat], [],
-                      AC_MSG_ERROR([Expat required for DRI.]))
-
+    PKG_CHECK_EXISTS([EXPAT], [have_expat=yes], [have_expat=no])
+    if test "x$have_expat" = "xyes"; then
+       PKG_CHECK_MODULES([EXPAT], [expat], [],
+                         AC_MSG_ERROR([Expat required for DRI.]))
+    else
+       # expat version 2.0 and earlier do not provide expat.pc
+       EXPAT_LIBS=-lexpat
+    fi
 
     # If we are building any DRI driver other than swrast.
     if test -n "$DRI_DIRS"; then