[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#976878: apr-util FTCBFS: uses mysql_config



Source: apr-util
Version: 1.6.1-5
Tags: patch upstream
User: debian-cross@lists.debian.org
Usertags: ftcbfs

apr-utils fails to cross build from source, because it uses mysql_config
and mysql_config does never work during cross compilation. A good
alternative is using pkg-config. I'm attaching an upstreamable patch to
update configure to use pkg-config. Since it uses the standard
PKG_CHECK_MODULES macro, it requires pkg.m4 from pkg-config. In
apr-util, doing so requires an appropriate sinclude directive. Very
likely, upstream would want a vendor copy of pkg.m4, which is not
included in my patch. Beyond this, pkg-config only kicks in when passing
yes to --with-mysql, otherwise it keeps using mysql_config for maximum
backwards compatibility. Please consider applying the patch.

Helmut
--- apr-util-1.6.1.orig/build/dbd.m4
+++ apr-util-1.6.1/build/dbd.m4
@@ -167,23 +167,32 @@
 
   AC_ARG_WITH([mysql], APR_HELP_STRING([--with-mysql=DIR], [enable MySQL DBD driver]),
   [
-    if test "$withval" = "yes"; then
-      AC_PATH_PROG([MYSQL_CONFIG],[mysql_config])
-      if test "x$MYSQL_CONFIG" = "x"; then
-        AC_PATH_PROG([MYSQL_CONFIG],[mariadb_config])
-      fi
-      if test "x$MYSQL_CONFIG" != 'x'; then
-        mysql_CPPFLAGS="`$MYSQL_CONFIG --include`"
-        mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r | sed -e 's/-l[[^ ]]\+//g'`"
-        mysql_LIBS="`$MYSQL_CONFIG --libs_r`"
+    AS_IF([test "$withval" = "yes"],[
+      PKG_CHECK_MODULES([MYSQLCLIENT],[mysqlclient],[
+          APR_ADDTO(CPPFLAGS,[$MYSQLCLIENT_CFLAGS])
+          APR_ADDTO(LIBS,[$MYSQLCLIENT_LIBS])
 
-        APR_ADDTO(CPPFLAGS, [$mysql_CPPFLAGS])
-        APR_ADDTO(LIBS, [$mysql_LIBS])
+          if echo "$MYSQLCLIENT_LIBS" | grep -q mariadb; then
+              my_library=mariadb
+          fi
+      ],[
+        AC_PATH_PROG([MYSQL_CONFIG],[mysql_config])
+        if test "x$MYSQL_CONFIG" = "x"; then
+          AC_PATH_PROG([MYSQL_CONFIG],[mariadb_config])
+        fi
+        if test "x$MYSQL_CONFIG" != 'x'; then
+          mysql_CPPFLAGS="`$MYSQL_CONFIG --include`"
+          mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r | sed -e 's/-l[[^ ]]\+//g'`"
+          mysql_LIBS="`$MYSQL_CONFIG --libs_r`"
 
-	if $MYSQL_CONFIG --libs_r | grep -q mariadb; then
-	  my_library="mariadb"
-	fi
-      fi
+          APR_ADDTO(CPPFLAGS, [$mysql_CPPFLAGS])
+          APR_ADDTO(LIBS, [$mysql_LIBS])
+
+          if $MYSQL_CONFIG --libs_r | grep -q mariadb; then
+            my_library="mariadb"
+          fi
+        fi
+      ])
 
       AC_CHECK_HEADERS([mysql.h errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break])
       if test "$apr_have_mysql" = "0"; then
@@ -193,7 +202,9 @@
 	AC_CHECK_HEADERS([my_global.h my_sys.h mysql/my_global.h mysql/my_sys.h])
 	AC_CHECK_LIB($my_library, mysql_init,, [apu_have_mysql=0])
       fi
-      if test "$apu_have_mysql" = "1" && test "x$MYSQL_CONFIG" != 'x'; then
+      if test "$apu_have_mysql" = 1 && test "x$MYSQLCLIENT_CFLAGS" != x; then
+        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$MYSQLCLIENT_CFLAGS])
+      elif test "$apu_have_mysql" = "1" && test "x$MYSQL_CONFIG" != 'x'; then
 	APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
       fi
     elif test "$withval" = "no"; then
@@ -231,7 +242,7 @@
       if test "$apu_have_mysql" = "1"; then
         APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
       fi
-    fi
+    ])
   ])
 
   AC_SUBST(apu_have_mysql)

Reply to: