apr-util: sync with master
authorSebastian Kemper <sebastian_ml@gmx.net>
Sat, 8 Feb 2020 20:50:33 +0000 (21:50 +0100)
committerSebastian Kemper <sebastian_ml@gmx.net>
Sat, 8 Feb 2020 20:58:31 +0000 (21:58 +0100)
This is a squash of the following cherry-picked commits:

27c47239367f11ad8bc6b5ee19ec4fb78b99d5cf
03124bf4b42eab292e92038bd7c4efdee78b23d1
141bd55316719f11741a578e650aa1895ec68b25
40c7e95210a44bc314f612bc66ef7864de2c09ba
1d25dcde24e9b70fbcb0cee5c2269bea940fb95b
ea5b746e58d0f0b6b13aec35c1b37c4ed3bf9b80
a62c0e599b52307e0896e15164ae1558a81be930
a16b29480567d89dedc5775d03391e3203d4e644
c24f5d258bb6600546ac513efb9e304de68930bd
f6c218e74dbea49bea6317b83bfd96867e1c314b

Short summary:

- adds external modules (crypto-openssl dbd-mysql dbd-odbc dbd-pgsql
  dbd-sqlite3 dbm-gdbm ldap)
- Makefile and patches are updated and cleaned
- adds myself as maintainer
- improves the cross-compile setup (via configure variables sed scripts)

For more details please check the individual commits provided above.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
libs/apr-util/Makefile
libs/apr-util/patches/001-automake-compat.patch [deleted file]
libs/apr-util/patches/002-fix-gdbm-error-handling.patch [new file with mode: 0644]
libs/apr-util/patches/003-support_mariadb.patch [new file with mode: 0644]
libs/apr-util/patches/004-avoid_ldap_by_defaut.patch [new file with mode: 0644]
libs/apr-util/patches/005-apu_config_dont_list_indep_libs.patch [new file with mode: 0644]
libs/apr-util/patches/006-avoid_db_by-default.patch [new file with mode: 0644]

index b067359f8c7062be060538bfa868dbafa2948e7b..0a0e12eafd5bac35ef2c202d63f5a5497a1a89ac 100644 (file)
@@ -9,75 +9,161 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apr-util
 PKG_VERSION:=1.6.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@APACHE/apr/
 PKG_HASH:=d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b
-PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
-PKG_LICENSE:=Apache License
+PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>, \
+               Sebastian Kemper <sebastian_ml@gmx.net>
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
 PKG_CPE_ID:=cpe:/a:apache:apr-util
 
+PKG_BUILD_PARALLEL:=1
+
+PKG_CONFIG_DEPENDS := \
+       CONFIG_PACKAGE_libaprutil-crypto-openssl \
+       CONFIG_PACKAGE_libaprutil-dbd-mysql \
+       CONFIG_PACKAGE_libaprutil-dbd-odbc \
+       CONFIG_PACKAGE_libaprutil-dbd-pgsql \
+       CONFIG_PACKAGE_libaprutil-dbd-sqlite3 \
+       CONFIG_PACKAGE_libaprutil-dbm-gdbm \
+       CONFIG_PACKAGE_libaprutil-ldap
+
 PKG_FIXUP:=autoreconf
-PKG_REMOVE_FILES:=aclocal.m4 build/ltmain.sh
 
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/libaprutil
+define Package/libaprutil/Default
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+libapr +libexpat +libsqlite3 +libuuid $(ICONV_DEPENDS)
-  TITLE:=Apache Portable Runtime Utility Library
   URL:=http://apr.apache.org/
 endef
 
-TARGET_CFLAGS += $(FPIC)
-TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+define Package/libaprutil
+$(call Package/libaprutil/Default)
+  DEPENDS:=+libapr +libexpat +libuuid $(ICONV_DEPENDS)
+  TITLE:=Apache Portable Runtime Utility Library
+endef
 
 CONFIGURE_ARGS += \
-       --with-pgsql=no \
        --with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
        --with-expat="$(STAGING_DIR)/usr" \
-       --without-sqlite2 \
-       --with-sqlite3="$(STAGING_DIR)/usr"
+       --with-iconv="$(ICONV_PREFIX)" \
+       --without-sqlite2
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-crypto-openssl),)
+CONFIGURE_ARGS += --with-crypto --with-openssl="$(STAGING_DIR)/usr"
+else
+CONFIGURE_ARGS += --without-crypto
+endif
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-dbd-mysql),)
+CONFIGURE_ARGS += --with-mysql="$(STAGING_DIR)/usr"
+else
+CONFIGURE_ARGS += --without-mysql
+endif
 
-ifdef $(CONFIG_BUILD_NLS)
-       CONFIGURE_ARGS += --with-iconv="$(ICONV_PREFIX)"
+ifneq ($(CONFIG_PACKAGE_libaprutil-dbd-odbc),)
+CONFIGURE_ARGS += --with-odbc="$(STAGING_DIR)/usr"
 else
-       CONFIGURE_ARGS += --without-iconv
+CONFIGURE_ARGS += --without-odbc
+endif
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-dbd-pgsql),)
+CONFIGURE_ARGS += --with-pgsql="$(STAGING_DIR)/usr"
+else
+CONFIGURE_ARGS += --without-pgsql
+endif
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-dbd-sqlite3),)
+CONFIGURE_ARGS += --with-sqlite3="$(STAGING_DIR)/usr"
+else
+CONFIGURE_ARGS += --without-sqlite3
+endif
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-dbm-gdbm),)
+CONFIGURE_ARGS += --with-gdbm="$(STAGING_DIR)/usr"
+else
+CONFIGURE_ARGS += --without-gdbm
+endif
+
+ifneq ($(CONFIG_PACKAGE_libaprutil-ldap),)
+CONFIGURE_ARGS += \
+       --with-ldap \
+       --with-ldap-include="$(STAGING_DIR)/usr/include" \
+       --with-ldap-lib="$(STAGING_DIR)/usr/lib"
+else
+CONFIGURE_ARGS += \
+       --without-ldap
 endif
 
 CONFIGURE_VARS += \
-       ac_cv_file_dbd_apr_dbd_mysql_c=no \
        ac_cv_path_ODBC_CONFIG= \
+       apu_cv_weak_symbols=yes \
        APR_BUILD_DIR="$(STAGING_DIR)/usr/share/build-1"
 
-MAKE_FLAGS += \
-       APRUTIL_LIBS="-lsqlite3 $(TARGET_LDFLAGS) -lexpat $(if $(ICONV_FULL),-liconv) -lapr-1 -luuid -lm -lcrypt"
+ifeq ($(CONFIG_USE_GLIBC)$(CONFIG_USE_MUSL),y)
+CONFIGURE_VARS += \
+       apu_cv_explicit_bzero=yes
+endif
+
+define Package/libaprutil/install/driver
+       $(INSTALL_DIR) $(1)/usr/lib/apr-util-1
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/apr-util-1/apr_$(2)*.so \
+                                       $(1)/usr/lib/apr-util-1
+endef
+
+define Package/libaprutil/Driver
+define Package/libaprutil-$(subst _,-,$(1))
+$(call Package/libaprutil/Default)
+  TITLE:=libaprutil - $(2) driver
+  DEPENDS:=libaprutil $(patsubst +%,+PACKAGE_libaprutil-$(subst _,-,$(1)):%,$(3))
+endef
+define Package/libaprutil-$(subst _,-,$(1))/install
+$(foreach d,$(1),$(call Package/libaprutil/install/driver,$$(1),$(d));)
+endef
+$$(eval $$(call BuildPackage,libaprutil-$(subst _,-,$(1))))
+endef
+
+# PKG_CONFIG_DEPENDS trigger configure, but the compile afterward may be
+# incomplete if the build directory is not cleaned before. This is not a
+# general observation, yet it is valid for apr-util :/
+define Build/Compile
+       $(call Build/Compile/Default,clean all)
+endef
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/include/apr-1/ $(1)/usr/lib  $(1)/usr/lib/pkgconfig/
-       $(CP)   $(PKG_INSTALL_DIR)/usr/bin/apu-1-config \
-               $(1)/usr/bin/
-       $(CP)   $(PKG_INSTALL_DIR)/usr/include/apr-1/* \
-               $(1)/usr/include/apr-1/
-       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/libaprutil-1.{la,a,so*} \
-               $(1)/usr/lib/
-       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/apr-util-1.pc \
-               $(1)/usr/lib/pkgconfig/
-       $(SED) 's, -e \"s -I$$$$prefix/lib  g\",,g' $(1)/usr/bin/apu-1-config
-       $(SED) 's,^libdir=\"$$$${exec_prefix}/lib,libdir=\"$(STAGING_DIR)/usr/lib,g' $(1)/usr/bin/apu-1-config
-       $(SED) 's,^includedir=\"$$$${prefix}/include/,includedir=\"$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/apu-1-config
-       $(SED) 's,-L$$$$libdir,,g' $(1)/usr/bin/apu-1-config
-       $(SED) 's,-R$$$$libdir,,g' $(1)/usr/bin/apu-1-config
+       $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/include/apr-1 \
+               $(1)/usr/lib/apr-util-1 $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/apu-1-config $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/apr-1/* $(1)/usr/include/apr-1
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/apr-util-1/apr_*.{a,so} \
+                       $(1)/usr/lib/apr-util-1 2>/dev/null || :
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libaprutil-1.{a,so*} \
+                                               $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/apr-util-1.pc \
+                                       $(1)/usr/lib/pkgconfig
+       $(SED) '/^prefix=\|^exec_prefix=/s|/usr|$(STAGING_DIR)/usr|' \
+                                       $(1)/usr/bin/apu-1-config
 endef
 
 define Package/libaprutil/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libaprutil-1.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libaprutil-1.so.* $(1)/usr/lib
 endef
 
 $(eval $(call BuildPackage,libaprutil))
+$(eval $(call Package/libaprutil/Driver,crypto_openssl,OpenSSL,+libopenssl))
+$(eval $(call Package/libaprutil/Driver,dbd_mysql,MySQL,+libmariadb))
+$(eval $(call Package/libaprutil/Driver,dbd_odbc,ODBC,+unixodbc))
+$(eval $(call Package/libaprutil/Driver,dbd_pgsql,PostgreSQL,+libpq))
+$(eval $(call Package/libaprutil/Driver,dbd_sqlite3,SQLite3,+libsqlite3))
+$(eval $(call Package/libaprutil/Driver,dbm_gdbm,GDBM dbm,+libgdbm))
+$(eval $(call Package/libaprutil/Driver,ldap,LDAP,+libopenldap))
diff --git a/libs/apr-util/patches/001-automake-compat.patch b/libs/apr-util/patches/001-automake-compat.patch
deleted file mode 100644 (file)
index 20c4cf2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -8,6 +8,7 @@ APRUTIL_MAJOR_VERSION=@APRUTIL_MAJOR_VER
- APRUTIL_DOTTED_VERSION=@APRUTIL_DOTTED_VERSION@
- srcdir = @srcdir@
-+top_builddir = @top_builddir@
- VPATH = @srcdir@
- INCLUDES = @APRUTIL_PRIV_INCLUDES@ @APR_INCLUDES@ @APRUTIL_INCLUDES@
---- a/configure.in
-+++ b/configure.in
-@@ -41,6 +41,8 @@ AC_SUBST(APU_CONFIG_LOCATION)
- AC_CANONICAL_SYSTEM
- AC_PROG_INSTALL
-+AC_PROG_LIBTOOL
-+LT_INIT
- # Use -no-install or -no-fast-install to link the test 
- # programs on all platforms but Darwin, where it would cause
diff --git a/libs/apr-util/patches/002-fix-gdbm-error-handling.patch b/libs/apr-util/patches/002-fix-gdbm-error-handling.patch
new file mode 100644 (file)
index 0000000..92a4738
--- /dev/null
@@ -0,0 +1,79 @@
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=889170
+# needs to be submitted upstream
+--- apr-util.orig/dbm/apr_dbm_gdbm.c
++++ apr-util/dbm/apr_dbm_gdbm.c
+@@ -36,13 +36,22 @@
+ static apr_status_t g2s(int gerr)
+ {
+     if (gerr == -1) {
+-        /* ### need to fix this */
+-        return APR_EGENERAL;
++        return APR_OS_START_USEERR + gdbm_errno;
+     }
+     return APR_SUCCESS;
+ }
++static apr_status_t gdat2s(datum d)
++{
++    if (d.dptr == NULL) {
++        return APR_OS_START_USEERR + gdbm_errno;
++    }
++
++    return APR_SUCCESS;
++}
++
++
+ static apr_status_t datum_cleanup(void *dptr)
+ {
+     if (dptr)
+@@ -55,19 +64,15 @@ static apr_status_t set_error(apr_dbm_t
+ {
+     apr_status_t rv = APR_SUCCESS;
+-    /* ### ignore whatever the DBM said (dbm_said); ask it explicitly */
+-
+-    if ((dbm->errcode = gdbm_errno) == GDBM_NO_ERROR) {
++    if (dbm_said == APR_SUCCESS) {
++        dbm->errcode = GDBM_NO_ERROR;
+         dbm->errmsg = NULL;
+     }
+     else {
++        dbm->errcode = dbm_said;
+         dbm->errmsg = gdbm_strerror(gdbm_errno);
+-        rv = APR_EGENERAL;        /* ### need something better */
+     }
+-    /* captured it. clear it now. */
+-    gdbm_errno = GDBM_NO_ERROR;
+-
+     return rv;
+ }
+@@ -144,7 +149,7 @@ static apr_status_t vt_gdbm_fetch(apr_db
+     /* store the error info into DBM, and return a status code. Also, note
+        that *pvalue should have been cleared on error. */
+-    return set_error(dbm, APR_SUCCESS);
++    return set_error(dbm, gdat2s(rd));
+ }
+ static apr_status_t vt_gdbm_store(apr_dbm_t *dbm, apr_datum_t key,
+@@ -203,7 +208,7 @@ static apr_status_t vt_gdbm_firstkey(apr
+                                   apr_pool_cleanup_null);
+     /* store any error info into DBM, and return a status code. */
+-    return set_error(dbm, APR_SUCCESS);
++    return set_error(dbm, gdat2s(rd));
+ }
+ static apr_status_t vt_gdbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey)
+@@ -223,7 +228,7 @@ static apr_status_t vt_gdbm_nextkey(apr_
+                                   apr_pool_cleanup_null);
+     /* store any error info into DBM, and return a status code. */
+-    return set_error(dbm, APR_SUCCESS);
++    return set_error(dbm, gdat2s(rd));
+ }
+ static void vt_gdbm_freedatum(apr_dbm_t *dbm, apr_datum_t data)
diff --git a/libs/apr-util/patches/003-support_mariadb.patch b/libs/apr-util/patches/003-support_mariadb.patch
new file mode 100644 (file)
index 0000000..1086e19
--- /dev/null
@@ -0,0 +1,125 @@
+# patch by Kris Karas fom
+# https://bz.apache.org/bugzilla/attachment.cgi?id=35326&action=diff
+--- a/build/dbd.m4
++++ b/build/dbd.m4
+@@ -163,10 +163,15 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [
+   old_cppflags="$CPPFLAGS"
+   old_ldflags="$LDFLAGS"
++  my_library="mysqlclient"
++
+   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'`"
+@@ -174,32 +179,40 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [
+         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 my_global.h my_sys.h],
+-                       AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]),
+-                       [apu_have_mysql=0; break],
+-                       [#include <my_global.h>])
+-      if test "$apu_have_mysql" = "0"; then
+-        AC_CHECK_HEADERS([mysql/mysql.h mysql/my_global.h mysql/my_sys.h],
+-                         AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]),
+-                         [apu_have_mysql=0; break],
+-                         [#include <mysql/my_global.h>])
++      AC_CHECK_HEADERS([mysql.h errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break])
++      if test "$apr_have_mysql" = "0"; then
++      AC_CHECK_HEADERS([mysql/mysql.h mysql/errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break])
+       fi
+-      if test "$apu_have_mysql" != "0" && test "x$MYSQL_CONFIG" != 'x'; then
+-        APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
++      if test "$apr_have_mysql" = "1"; then
++      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
++      APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
+       fi
+     elif test "$withval" = "no"; then
+       :
+     else
+       AC_PATH_PROG([MYSQL_CONFIG],[mysql_config],,[$withval/bin])
++      if test "x$MYSQL_CONFIG" = "x"; then
++      AC_PATH_PROG([MYSQL_CONFIG],[mariadb_config],,[$withval/bin])
++      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`"
++      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
+       else
+-        mysql_CPPFLAGS="-I$withval/include"
+-        mysql_LDFLAGS="-L$withval/lib "
++      mysql_CPPFLAGS="-I$withval/include"
++      mysql_LDFLAGS="-L$withval/lib "
+       fi
+       APR_ADDTO(CPPFLAGS, [$mysql_CPPFLAGS])
+@@ -207,18 +220,15 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [
+       APR_ADDTO(LIBS, [$mysql_LIBS])
+       AC_MSG_NOTICE(checking for mysql in $withval)
+-      AC_CHECK_HEADERS([mysql.h my_global.h my_sys.h],
+-                       AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]),
+-                       [apu_have_mysql=0; break],
+-                       [#include <my_global.h>])
+-
+-      if test "$apu_have_mysql" != "1"; then
+-        AC_CHECK_HEADERS([mysql/mysql.h mysql/my_global.h mysql/my_sys.h],
+-                         AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]),
+-                         [apu_have_mysql=0; break],
+-                         [#include <mysql/my_global.h>])
++      AC_CHECK_HEADERS([mysql.h errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break])
++      if test "$apr_have_mysql" = "0"; then
++      AC_CHECK_HEADERS([mysql/mysql.h mysql/errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break])
++      fi
++      if test "$apr_have_mysql" = "1"; then
++      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" != "0"; then
++      if test "$apu_have_mysql" = "1"; then
+         APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS])
+       fi
+     fi
+@@ -229,7 +239,7 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [
+   dnl Since we have already done the AC_CHECK_LIB tests, if we have it, 
+   dnl we know the library is there.
+   if test "$apu_have_mysql" = "1"; then
+-    APR_ADDTO(LDADD_dbd_mysql, [$mysql_LDFLAGS -lmysqlclient $mysql_LIBS])
++    APR_ADDTO(LDADD_dbd_mysql, [$mysql_LDFLAGS -l$my_library $mysql_LIBS])
+   fi
+   AC_SUBST(LDADD_dbd_mysql)
+--- a/dbd/apr_dbd_mysql.c
++++ b/dbd/apr_dbd_mysql.c
+@@ -1262,7 +1262,9 @@ static apr_status_t thread_end(void *dat
+ static void dbd_mysql_init(apr_pool_t *pool)
+ {
++#if MYSQL_VERSION_ID < 100000
+     my_init();
++#endif
+     mysql_thread_init();
+     /* FIXME: this is a guess; find out what it really does */
diff --git a/libs/apr-util/patches/004-avoid_ldap_by_defaut.patch b/libs/apr-util/patches/004-avoid_ldap_by_defaut.patch
new file mode 100644 (file)
index 0000000..a086f2e
--- /dev/null
@@ -0,0 +1,34 @@
+From: Ryan Niebur <ryanryan52@gmail.com>
+Subject: by default --avoid-ldap since apache2 is the only user, and we don't
+ want to add extra dependencies to other apr-utils rdepends
+
+--- a/apu-config.in
++++ b/apu-config.in
+@@ -30,7 +30,8 @@ includedir="@includedir@"
+ LIBS="@APRUTIL_EXPORT_LIBS@"
+ INCLUDES="@APRUTIL_INCLUDES@"
+ LDFLAGS="@APRUTIL_LDFLAGS@"
+-LDAP_LIBS="@LDADD_ldap@"
++ORIG_LDAP_LIBS="@LDADD_ldap@"
++LDAP_LIBS=""
+ DBM_LIBS="@LDADD_dbm_db@ @LDADD_dbm_gdbm@ @LDADD_dbm_ndbm@"
+ APRUTIL_LIBNAME="@APRUTIL_LIBNAME@"
+@@ -55,7 +56,7 @@ Known values for OPTION are:
+   --includedir      print location where headers are installed
+   --ldflags         print linker flags
+   --libs            print library information
+-  --avoid-ldap      do not include ldap library information with --libs
++  --avoid-ldap      do not include ldap library information with --libs (default on OpenWrt)
+   --ldap-libs       print library information to link with ldap
+   --avoid-dbm       do not include DBM library information with --libs
+   --dbm-libs        print additional library information to link with DBM
+@@ -121,7 +122,7 @@ while test $# -gt 0; do
+     flags="$flags $LDAP_LIBS $DBM_LIBS $LIBS"
+     ;;
+     --ldap-libs)
+-    flags="$flags $LDAP_LIBS"
++    flags="$flags $ORIG_LDAP_LIBS"
+     ;;
+     --dbm-libs)
+     flags="$flags $DBM_LIBS"
diff --git a/libs/apr-util/patches/005-apu_config_dont_list_indep_libs.patch b/libs/apr-util/patches/005-apu_config_dont_list_indep_libs.patch
new file mode 100644 (file)
index 0000000..7f4b565
--- /dev/null
@@ -0,0 +1,31 @@
+From: Peter Samuelson <peter@p12n.org>
+Subject: Prevent recursive linking of dependent libraries by apr-util users.
+
+---
+ apr-util.pc.in |    5 +++--
+ apu-config.in  |    2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+--- a/apr-util.pc.in
++++ b/apr-util.pc.in
+@@ -8,6 +8,7 @@ Name: APR Utils
+ Description: Companion library for APR
+ Version: @APRUTIL_DOTTED_VERSION@
+ # assume that apr-util requires libapr of same major version
+-Requires: apr-@APRUTIL_MAJOR_VERSION@
+-Libs: -L${libdir} -l@APRUTIL_LIBNAME@ @LDADD_ldap@ @APRUTIL_EXPORT_LIBS@
++Requires.private: apr-@APRUTIL_MAJOR_VERSION@
++Libs: -L${libdir} -l@APRUTIL_LIBNAME@ @LDADD_ldap@
++Libs.private: @APRUTIL_EXPORT_LIBS@
+ Cflags: -I${includedir}
+--- a/apu-config.in
++++ b/apu-config.in
+@@ -27,7 +27,7 @@ bindir="@bindir@"
+ libdir="@libdir@"
+ includedir="@includedir@"
+-LIBS="@APRUTIL_EXPORT_LIBS@"
++LIBS=
+ INCLUDES="@APRUTIL_INCLUDES@"
+ LDFLAGS="@APRUTIL_LDFLAGS@"
+ ORIG_LDAP_LIBS="@LDADD_ldap@"
diff --git a/libs/apr-util/patches/006-avoid_db_by-default.patch b/libs/apr-util/patches/006-avoid_db_by-default.patch
new file mode 100644 (file)
index 0000000..033bbbf
--- /dev/null
@@ -0,0 +1,35 @@
+From: Stefan Fritsch <sf@debian.org>
+Subject: Make apu-config not output dbm libs by default. See #622081
+
+--- a/apu-config.in
++++ b/apu-config.in
+@@ -32,7 +32,8 @@ INCLUDES="@APRUTIL_INCLUDES@"
+ LDFLAGS="@APRUTIL_LDFLAGS@"
+ ORIG_LDAP_LIBS="@LDADD_ldap@"
+ LDAP_LIBS=""
+-DBM_LIBS="@LDADD_dbm_db@ @LDADD_dbm_gdbm@ @LDADD_dbm_ndbm@"
++ORIG_DBM_LIBS="@LDADD_dbm_db@ @LDADD_dbm_gdbm@ @LDADD_dbm_ndbm@"
++DBM_LIBS=""
+ APRUTIL_LIBNAME="@APRUTIL_LIBNAME@"
+@@ -58,8 +59,8 @@ Known values for OPTION are:
+   --libs            print library information
+   --avoid-ldap      do not include ldap library information with --libs (default on OpenWrt)
+   --ldap-libs       print library information to link with ldap
+-  --avoid-dbm       do not include DBM library information with --libs
+-  --dbm-libs        print additional library information to link with DBM
++  --avoid-dbm       do not include DBM library information with --libs (default on OpenWrt)
++  --dbm-libs        print library information to link with DBM
+   --srcdir          print APR-util source directory
+   --link-ld         print link switch(es) for linking to APR-util
+   --link-libtool    print the libtool inputs for linking to APR-util
+@@ -125,7 +126,7 @@ while test $# -gt 0; do
+     flags="$flags $ORIG_LDAP_LIBS"
+     ;;
+     --dbm-libs)
+-    flags="$flags $DBM_LIBS"
++    flags="$flags $ORIG_DBM_LIBS"
+     ;;
+     --includedir)
+     if test "$location" = "installed"; then