summaryrefslogtreecommitdiffstats
path: root/debian/patches/Improve-cross-compile-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/Improve-cross-compile-support.patch')
-rw-r--r--debian/patches/Improve-cross-compile-support.patch116
1 files changed, 116 insertions, 0 deletions
diff --git a/debian/patches/Improve-cross-compile-support.patch b/debian/patches/Improve-cross-compile-support.patch
new file mode 100644
index 0000000..708336f
--- /dev/null
+++ b/debian/patches/Improve-cross-compile-support.patch
@@ -0,0 +1,116 @@
+From: Helmut Grohne <helmut@subdivi.de>
+Date: Tue, 5 Jan 2021 22:25:00 +0100
+Subject: Improve cross-compile support
+
+The check for the signedness of size_t really doesn't have to be run as
+that is a compile time property.
+
+Beyond that, dovecot uses mysql_config. I've looked into that and
+mysql_config is unfixably broken during cross builds. It will not be
+fixed. Instead, please use pkg-config. My patch implements that with a
+fallback to mysql_config to avoid breaking other users.
+
+Last but not least, src/lib-lua/Makefile.am adds $(LUA_LIBS) to
+libdovecot_lua_la_DEPENDENCIES. As it happens, LUA_LIBS contains a -L
+flag and when that flag shows up in a dependency, make gives up. I have
+no clue why one would add LUA_LIBS to DEPENDENCIES as it already is
+being correctly added to LIBADD. My patch suggests to quite simply drop
+that.
+---
+ m4/want_mysql.m4 | 54 ++++++++++++++++++++++++-------------------------
+ src/lib-lua/Makefile.am | 4 +---
+ 2 files changed, 27 insertions(+), 31 deletions(-)
+
+diff --git a/m4/want_mysql.m4 b/m4/want_mysql.m4
+index 98e6f93..425bcdd 100644
+--- a/m4/want_mysql.m4
++++ b/m4/want_mysql.m4
+@@ -1,26 +1,28 @@
+ AC_DEFUN([DOVECOT_WANT_MYSQL], [
+ have_mysql=no
+- if test $want_mysql != no; then
+- AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, mysql_config, NO)
+- if test $MYSQL_CONFIG = NO; then
+- # based on code from PHP
+- MYSQL_LIBS="-lmysqlclient -lz -lm"
+- for i in /usr /usr/local /usr/local/mysql; do
+- for j in include include/mysql ""; do
+- if test -r "$i/$j/mysql.h"; then
+- MYSQL_INCLUDE="-I$i/$j"
+- fi
+- done
+- for j in lib lib/mysql lib64 lib64/mysql ""; do
+- if test -f "$i/$j/libmysqlclient.so" || test -f "$i/$j/libmysqlclient.a"; then
+- MYSQL_LIBS="-L$i/$j -lmysqlclient -lz -lm"
+- fi
+- done
+- done
+- else
+- MYSQL_INCLUDE="`$MYSQL_CONFIG --include`"
+- MYSQL_LIBS="`$MYSQL_CONFIG --libs`"
+- fi
++ AS_IF([test $want_mysql != no],[
++ PKG_CHECK_MODULES([MYSQL],[mysqlclient],,[
++ AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, mysql_config, NO)
++ if test $MYSQL_CONFIG = NO; then
++ # based on code from PHP
++ MYSQL_LIBS="-lmysqlclient -lz -lm"
++ for i in /usr /usr/local /usr/local/mysql; do
++ for j in include include/mysql ""; do
++ if test -r "$i/$j/mysql.h"; then
++ MYSQL_CFLAGS="-I$i/$j"
++ fi
++ done
++ for j in lib lib/mysql lib64 lib64/mysql ""; do
++ if test -f "$i/$j/libmysqlclient.so" || test -f "$i/$j/libmysqlclient.a"; then
++ MYSQL_LIBS="-L$i/$j -lmysqlclient -lz -lm"
++ fi
++ done
++ done
++ else
++ MYSQL_CFLAGS="`$MYSQL_CONFIG --include`"
++ MYSQL_LIBS="`$MYSQL_CONFIG --libs`"
++ fi
++ ])
+
+ old_LIBS=$LIBS
+ if test "$MYSQL_LIBS" != ""; then
+@@ -31,14 +33,10 @@ AC_DEFUN([DOVECOT_WANT_MYSQL], [
+ LIBS="$LIBS -lz -lm"
+ AC_CHECK_LIB(mysqlclient, mysql_init, [
+ old_CPPFLAGS=$CPPFLAGS
+- if test "$MYSQL_INCLUDE" != ""; then
+- CPPFLAGS="$CPPFLAGS $MYSQL_INCLUDE"
++ if test "$MYSQL_CFLAGS" != ""; then
++ CPPFLAGS="$CPPFLAGS $MYSQL_CFLAGS"
+ fi
+ AC_CHECK_HEADER(mysql.h, [
+- if test "$MYSQL_INCLUDE" != ""; then
+- MYSQL_CFLAGS="$MYSQL_CFLAGS $MYSQL_INCLUDE"
+- fi
+-
+ AC_CHECK_LIB(mysqlclient, mysql_ssl_set, [
+ AC_DEFINE(HAVE_MYSQL_SSL,, [Define if your MySQL library has SSL functions])
+ if test "x$have_openssl" = "yes"; then
+@@ -85,5 +83,5 @@ AC_DEFUN([DOVECOT_WANT_MYSQL], [
+ MYSQL_CFLAGS=
+ fi
+ LIBS=$old_LIBS
+- fi
++ ])
+ ])
+diff --git a/src/lib-lua/Makefile.am b/src/lib-lua/Makefile.am
+index 20ce311..7d44e89 100644
+--- a/src/lib-lua/Makefile.am
++++ b/src/lib-lua/Makefile.am
+@@ -24,9 +24,7 @@ test_programs += test-dict-lua
+ endif
+
+ # Note: the only things this lib should depend on are libdovecot and lua.
+-libdovecot_lua_la_DEPENDENCIES = \
+- ../lib-dovecot/libdovecot.la \
+- $(LIBDICT_LUA)
++libdovecot_lua_la_DEPENDENCIES = ../lib-dovecot/libdovecot.la
+ libdovecot_lua_la_LIBADD = \
+ ../lib-dovecot/libdovecot.la \
+ $(LIBDICT_LUA) \